Avatar billede Slettet bruger
04. marts 2006 - 01:21 Der er 7 kommentarer og
1 løsning

bestemt antal indlæg, det virker ikke..

Hej, har fundet dette script på en hjemmeside, og det virker også fint, men der er lavet en funktion som gør at den kun skal vise f.eks 5 indlæg per side.
Den viser så 5 indlæg på den 1. side, men på 2. , 3. , 4 osv. går den helt amok....


Her er scriptet!
<?
function aaben_mysql() {
  $server = "192.168.1.3";
  $bruger = "musiklirstest";
  $kodeord = "9375";
  $database = "musiklirstest";
  if (!mysql_connect("$server","$bruger","$kodeord")) {
    print("Kunne ikke oprette en forbindelse til MySQL.");
  }

  if(!mysql_select_db("$database")) {
    print("Kunne ikke vælge databasen: $database");
  }
}//mysql tænd

function luk_mysql() {
  if(!mysql_close()) {
    print("Kunne ikke lukke forbindelsen til MySQL!");
  }
}//mysql luk
$aps = 5; //antal per side
?><html>
<head>
<title>L&aelig;s G&aelig;stebogen</title>
<link rel="stylesheet" type="text/css" href="http://www.musiklirstest.frac.dk/Stylesheet/link.css">
<body background="../../images/Design_v2_08.gif"
</head>

<body>

    <div align="center">
        <center>
            <table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
                <tr>
                    <td width="10%"></td>
                      <td>
                          <h3>Gæstebogen.</h3>


                        <div align="center">
                          <?php
                            aaben_mysql();
                            if (isset($page)){
                                $page = $page;
                            }else{
                                $page=1;
                            };
                            $tekster = mysql_result(mysql_query("SELECT COUNT(*) FROM book"), 0);

                            $slut = $page * $aps;
                            $start = $slut-$aps;
                            if ($tekster > $aps){
                                $as = $tekster / $aps; //antal sider
                            }else{
                                $as = 1;
                            };
                           

                            $SQL = "SELECT * FROM `book` ORDER BY 'id' DESC LIMIT ".$start.", ".$slut." ";
                            $foresp = mysql_query($SQL);
                            while ($data = mysql_fetch_array($foresp)){
                                print("<table border='3' cellpadding='0' width='90%' bordercolor='#000000'>\n");
                                print("<tr>\n");
                                print("<td>\n");
                                print("Fra: $data[navn] <br>\n");
                                print("Mail: <a href='mailto:");
                                print($data[mail]);
                                print("'>");
                                print($data[mail]);
                                print("</a> <br>\n");
                                print("</td>\n");
                                print("</tr>\n");
                                print("<tr>\n");
                                print("<td width=\"25%\">".nl2br($data[besked])."</td>\n");

                                  print("</tr>\n");
                                  print("</table>\n<br>\n");
                            }
                            $counter = 1;
                            print("<table><tr><td>");
                            while($counter <= $as){
                                if ($page <> $counter){
                                    print("<a href='book.php?page=".$counter."'>");
                                }
                                print($counter);
                                if ($page <> $counter){
                                    print("</a>");
                                }
                                if ($counter <> $as){
                                    print(" ");
                                }
                                $counter++;
                            };
                            print("</td></tr></table>");
                          ?>
                        </div>
                        <p><br>
                        </p>
                    </td>
                </tr>
            </table>
        </center>
    </div>
</body>
</html>
Avatar billede coderdk Praktikant
04. marts 2006 - 03:05 #1
LIMIT ".$start.", ".$slut.

Det er ikke "slut" det er "antal", altså 100,10 tager fra nummer 100 og 10 frem ;) Din gør vel sikkert 100,110 ;)
Avatar billede Slettet bruger
04. marts 2006 - 22:11 #2
Forstår ikke.. kan jeg ikke få dig til at rette koden og lige skrive hvad det er du hr gjort..?
Avatar billede coderdk Praktikant
04. marts 2006 - 22:12 #3
Bare ret

$slut = $page * $aps;

til

$slut = $aps;
Avatar billede Slettet bruger
04. marts 2006 - 22:23 #4
Nej det virker  ikke, for nu viser den kun de sidste 5 indlæg der er skrevet og vis jeg går til side 2 er det de samme indlæg
Avatar billede coderdk Praktikant
04. marts 2006 - 22:30 #5
Ok, my bad, jeg skulle have skrevet at du skulle rette:

  $slut = $page * $aps;
  $start = $slut-$aps;

til:

  $slut = $aps;
  $start = $page * $aps;
Avatar billede Slettet bruger
04. marts 2006 - 22:47 #6
Hmm, jeg har 11 rækker (eller hva det hedder) i min mysql table nu, så burde jeg også have 3 sider nu, (den skal vise max 5 på ver) Men den viser kun 2, og på side 2 er der kun et, dvs. kun 6 indlæg blir vist?
Avatar billede coderdk Praktikant
04. marts 2006 - 22:51 #7
Sikker på det? Den kode jeg har ændret, har jo ikke ændret på din sidevisningskode... Prøv at echo'e $tekster ud og se om den skriver 11 ud...

$as = $tekster / $aps;

burde måske også være:

$as = ceil( $tekster / $aps );
Avatar billede Slettet bruger
28. marts 2006 - 19:41 #8
er
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester