Avatar billede webweaver Praktikant
26. marts 2005 - 22:25 Der er 6 kommentarer og
1 løsning

10 indlæg pr. side.

Hej folkens.

Jeg har et problem. Jeg har kodet en kode, som gør så den viser et vidst antal indlæg i min gæstebog pr. side. Men jeg opdagede den ikke virker 100% korrekt. Det er lidt svært at forklare, men hvis fx den er sat til at vise 10 indlæg pr. side, så hvis man har 10 sider fx, og den 10'ende side er fyldt helt ud, altså der er 10 indlæg på den, og hvis der bliver skrevet et indlæg mere, som kommer der en 11. side. Men det gør der desværre alligevel. Hvis side 10, er fyldt helt ud med 10 indlæg, så laver den en 11. side, og bare viser den tom. Det skal den jo som sagt ikke før, der er skrevet mere end 10 indlæg på side 10. Det er det som jeg gerne vil have rettet, men jeg ved ikke hvordan. Så håber I kan vise mig hvordan! I kan se gæstebogen i aktion her: http://www.webweaver.dk/guestbook.php

Og her er koden til den:

<?
               
                $e = isset($_GET['e'])?$_GET['e']:"";
                $a = 10 * $e;
                $b = $a + 10 - $e * 10;
                $c = $e - 1;
                $d = $e + 1;

                $conn = mysql_connect("............",".............","..........");
                mysql_select_db(".........");
       
                if($_POST['skriv']) {
                $besked = nl2br(htmlentities($_POST['besked']));
                $dato = strftime("%d/%m-%Y&nbsp;%T", time());
                $ip = $_SERVER["REMOTE_ADDR"];
                mysql_query("INSERT INTO guestbook (navn, email, dato, ip, besked) VALUES ('$_POST[navn]','$_POST[email]','$dato','$ip','$besked')");
       
                }
                ?>
                 
                <?
                $foresp = mysql_query("SELECT * FROM guestbook");
                $total = mysql_num_rows($foresp);
               
                $pages = $total / 10;
               
                if($e + 1 < $pages OR $d=="$pages"){
                $next = " - <a class=\"guestbook\" href=\"http://www.webweaver.dk/guestbook.php?e=$d\">Næste</a>";
                }
               
                if($e - 1 < $pages AND $e){
                $prev = "<a class=\"guestbook\" href=\"http://www.webweaver.dk/guestbook.php?e=$c\">Forrige</a> - ";
                } else {
                $prev = "Forrige - ";
                }
               
                if($d > $pages){
                $next = " - Næste";
                }
                                   
                $foresp = "SELECT * FROM guestbook order by nr DESC LIMIT $a,$b";
                $result = mysql_query($foresp) or die(mysql_error());
                if($total == 0){
                echo "<table width=\"100%\" border=\"0\">";
                echo "<tr>";
                echo "<td align=\"center\"><p class=\"guestbook\">Der er ingen beskeder i gæstebogen...</p></td>";
                echo "</tr>";
                echo "</table>";
                } else {
                while($data = mysql_fetch_array($result)){
                echo "<table class=\"guestbook_boks\" cellpadding=\"3px\">";
                echo "<tr><td class=\"guestbook\" width=\"50%\" align=\"left\">";
                echo "Fra: <a class=\"guestbook\" href=\"mailto:".$data['email']."\">".$data['navn']."</a></td>";
                echo "<td class=\"guestbook\" width=\"50%\" align=\"right\"><b>".$data['dato']."</b></td></tr>";
                echo "<tr><td colspan=\"2\"><img src=\"http://www.webweaver.dk/billeder/guestbook_linie.gif\" width=\"100%\" height=\"1px\" alt=\"\"></td></tr>";
                echo "<tr><td colspan=\"2\" class=\"guestbook\" align=\"left\" valign=\"top\">".$data['besked']."</td></tr>";
                echo "</table>"; 
                echo "<p>";
                }
                ?>
               
            <div align="center">
               
                <?
                    echo "<p class=\"guestbook\">\n$prev";
                    $pages1 = ceil($pages);
                    $tal = 0;
                    $tal1 = 1;
                    while($pages1 >= $tal1) {
                    if($tal == $e) {
                    echo "<b>$tal1</b>";
                    } else {
                    echo " <a class=\"guestbook\" href=\"http://www.webweaver.dk/guestbook.php?e=$tal \">$tal1</a> ";
                    }
                    $tal++;
                    $tal1++;
                    }
                    echo "$next\n</p>";
                    }
                ?>

Mange mange tak for hjælpen!! :D

Mvh. Lasse Jensen
Avatar billede henninghabor Nybegynder
26. marts 2005 - 22:31 #1
Prøv at putte dine regnestykker i parentes.

F. eks. denne: if(($e + 1) < $pages OR $d=="$pages"){
Avatar billede henninghabor Nybegynder
26. marts 2005 - 22:31 #2
Og du bør nok også putte nogle parenteser ind i denne: $b = $a + 10 - $e * 10;
Avatar billede webweaver Praktikant
26. marts 2005 - 22:34 #3
Det skal lige siges at det ikke er tallene som laver fejlen, men det er "næste" linket, som man kan klikke på til sidst, som så linker til en tom side. Det er self. ikke meningen!
Avatar billede webweaver Praktikant
26. marts 2005 - 22:40 #4
Det gør desværre ingen forskel om der er parentes om regnestykkerne eller ej.
Avatar billede webweaver Praktikant
27. marts 2005 - 00:29 #5
Jeg trækker mit spørgsmål da jeg stolt som jeg er, selv har løst problemet.! :D :o) Faktisk utrolig simpelt... Hehe...
Avatar billede henninghabor Nybegynder
28. marts 2005 - 10:15 #6
Hvad var fejlen så?
Avatar billede webweaver Praktikant
28. marts 2005 - 10:32 #7
Jamen når man kigger på koden så er det faktisk ret indlysende, fordi det står der. Denne linie:

if($e + 1 < $pages OR $d=="$pages"){

skulle se sådan her ud:

if($e + 1 < $pages){

Og denne linie:

if($d > $pages){

skulle se sådan her ud:

if($d > $pages OR $d=="$pages"){


----------

Som du kan se, skulle det bare lige flyttes en lille del, før hele problemet var løst.

Mvh. Lasse Jensen
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