Toon posts:

[php] Verdelen van berichten over meerdere pagina's

Pagina: 1
Acties:
  • 50 views sinds 30-01-2008

Verwijderd

Topicstarter
ik ben bezig om een simpel gastenboek te maken, nu heb ik dus een overzicht gemaakt waarin alle berichten die in het gastenboek zijn gezet weergegeven worden. Als er veel in het gastenboek geschreven gaat worden wordt het onoverzichtelijk als alles onder elkaar blijft staan dus wil ik deze berichten verdelen.

Ik een script die per pagina 5 berichten laat zien, dit doet hij op de eerste pagina goed alleen als ik dan naar mijn twee pagina ga dan zie ik dezelfde 5 berichten. Nu ben ik pas begonnen met php en weet hier nog niet alles van. Ik hoopte dat iemand mij kon zeggen wat ik hier fout doe.

Ik krijg dus alwel 5 berichten per pagina te zien en de hoeveelheid pagina's

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
    include ("inc/db_connect.inc.php");
  $query =mysql_query("SELECT * FROM gastenboek");
   
    if(!$pagina){ 
            $pagina=1; 
        } 

        $aantal=mysql_num_rows($query); 

        $tot=5; 
        $van=($pagina*$tot)-$tot; 

        $sql2=mysql_query("SELECT * FROM gastenboek LIMIT $van,$tot"); 
        $aantal2=mysql_num_rows($sql2);
        
        for($i=0; $i<$aantal2; $i++){ 
    while($data=mysql_fetch_array($sql2)){ 
        $naam    = $data["naam"];  
        $email   = $data["email"];
        $website = $data["website"];
        $bericht = $data["bericht"];
        $datum   = $data["datum"];
    ?>
        <table width="540" border="0" align="center" cellspacing="0" cellpadding="0">
        <tr>
            <td>
                <table width="100%" border="0" align="center" cellspacing="2" cellpadding="0" bgcolor="#841A96">
                    <tr>
                        <td width="200"><div align="left"><font style="arial" size="2" color="#FFFF00"><?php echo "Door: <a href=mailto:$email>$naam</a>";?></font></div></td>
                        <td width="280"><div align="left"><font style="arial" size="2" color="#FFFF00"><?php echo "Website: <a href=http://$website target=_blank>$website</a>";?></font></div></td>
                        <td width="100"><div align="right"><font style="arial" size="2" color="#FFFF00"><?php echo $datum;?></font></div></td>      
                    </tr>
                </table>
            </td>
        </tr>
        <tr>
            <td>
                <table width="98% "border="0" align="center" cellspacing="2" cellpadding="0">
                    <tr>
                        <td><font style="arial" size="2"><?php echo "$bericht<br><br>";?></font></td>
                    </tr>
                </table>
            </td>
        </tr>
        </table>
        [img]"../plaatjes/tussenstreep.gif"[/img] 
        <br>        
        <?php 
        } 
        } 
         
        echo "<center>";
        moet getoont worden (5) te delen door het totale aantal posts en dat afronden naar boven 
        $aantal3=ceil($aantal/$tot); 

        
        if($aantal3<>'1'){ 
        if($pagina<>'1'){ 
                $pagina2=$pagina-1; 
                echo("<A href=\"$PHP_SELF?pagina=$pagina2\">vorige</A>&nbsp;"); 
            } 
        for($j=0; $j<$aantal3; $j++){ 
                $k=$j+1; 
                echo("[<A href=\"$PHP_SELF?pagina=$k\">$k</A>] "); 
            } 
        if($pagina<>$aantal3){ 
                $pagina3=$pagina+1; 
                echo("<A href=\"$PHP_SELF?pagina=$pagina3\">volgende</A>");
                echo "</center>"; 
            } 
        }
        ?>

[ Voor 22% gewijzigd door Verwijderd op 24-10-2005 18:10 ]


  • imp4ct
  • Registratie: November 2003
  • Laatst online: 19-04 22:55
Vrij simpel op te lossen via een SQL statement Limit

code:
1
2
3
4
SELECT *
FROM jouwtabel
ORDER BY post_date DESC
LIMIT 5(nummer beginrij) , 5(hoeveel .. dit moet bij jou dus altijd 5 zijn)

Hoe kan je nu telkens ervoor zorgen dat je juist zit.
Gewoon, als je op pagina 1 zit ... begint je bij 0 .. en zo per pagina ... 5 erbij tellen bij de beginrij, zorg wel dat je weet hoeveel rijen dat je hebt zodat je optijd stopt ;)..
Dan zou het moeten werken denk ik.

[ Voor 12% gewijzigd door imp4ct op 24-10-2005 19:28 ]

Bedrijf : Webtrix

Foto materiaal:
Nikon D7100 | Nikor AF-S DX 18-105mm | Nikor AF-S 50mm | Nikon SB600


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Het is niet de bedoeling dat je hier je hele script post, en dat wij het vervolgens maar voor je moeten debuggen/aanpassen. Bovendien vind ik hier heel veel over met Google, bijvoorbeeld deze pagina:
http://www.phpnoise.com/tutorials/9/1

Ook is je vraag in dit subforum al vaker voorbij gekomen. Volgende keer dus even wat beter zoeken voor je een topic opent. :)

[ Voor 9% gewijzigd door NMe op 24-10-2005 19:37 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Dit topic is gesloten.