Ga naar inhoud

[php & mysql] Gastenboek met vorige | nummering | volgen


anoniem

Aanbevolen berichten

Hey, ik heb een gastenboek gemaakt(nee, niet die van C!T :D ), en heb er een vorige | nummering | volgende in gebouwd. Die werkt niet helemaal. In het begin(in de index) krijg ik ze allemaal te zien en als ik op een nummer, vorige of volgende klik blijven ze ook allemaal staan. Er zit nog geen invoer of verwijder pagina bij, ik voer ze nu nog gewoon in met PHPMyAdmin omdat het nu alleen nog maar erom gaat dat het werkt. Dit is nu de code: [code:1:0a2c90bad0] <?php mysql_connect('localhost','username','pass');//maak verbinding mysql_select_db('db');//selecteer database $sql = "SELECT * FROM berichten";//maak sql query $resultaat = mysql_query($sql);//voer query uit $limiet = 10; // Stel max. aantal resultaten per pagina in $deze_pagina="index.php"; //defineer pagina-naam of gebruik $PHP_SELF $aantal = mysql_num_rows($resultaat); //tel aantal resultaten vd zoekopdracht //Begin vorige | nummering | volgende $paginas=intval($aantal/$limiet); // bereken aantal pagina's met resultaten if ($aantal%$limiet) //als aantal veelvoud is van de limiet, 1 pagina erbij op tellen { $paginas++; } if ($aantal !="0") { if (empty($_GET["offset"])) { $offset=0; } else { $offset = $_GET["offset"]; } //begin while loop om gegevens te laten zien while($record = mysql_fetch_object($resultaat)){ echo "<center>";//begin met centreren echo "<table border='1' bordercolor='green' cellpadding='1' cellspacing='1' width='80%'>";//begin tabel echo "<tr width='70%'><td width='10%'>Bericht ID: </td><td width='60%'>$record->bericht_id</td></tr>";//display bericht_id echo "<tr width='70%'><td width='10%'>Naam: </td><td width='60%'>$record->username</td></tr>";//display naam echo "<tr width='70%'><td width='10%'>Email: </td><td width='60%'><A HREF='MAILTO:$record->email'>$record->email</A></td></tr>";//display email met mailto echo "<tr width='70%'><td width='10%'>Website: </td><td width='60%'><A HREF='$record->url'>$record->url</A></td></tr>";//display website met url echo "<tr width='70%'><td width='10%'>Datum: </td><td width='60%'>$record->datum</td></tr>";//display datum echo "<tr width='70%'><td width='10%'>Bericht: </td><td width='60%' height='5%'>$record->bericht</td></tr>";//display bericht echo "</table>";//einde tabel echo "</center>";//einde centreren echo "<br>"; } //einde while loop // Hieronder wordt Vorige | nummering | Volgende gecreëerd if ($aantal > $limiet) { if ($offset!=0) // indien niet eerste pagina, druk "Vorige" af { $vorige_offset=$offset-$limiet; print "<a href=\"$deze_pagina?offset=$vorige_offset\">Vorige</a> |\n"; } for ($i=1;$i<=$paginas;$i++) // de nummering van de pagina's wordt hier afgedrukt { $nieuwe_offset=$limiet*($i-1); if ($nieuwe_offset==$offset) // indien huidige pagina, dan vet afdrukken { print "<a href=\"$deze_pagina?offset=$nieuwe_offset\"><b>$i</b></a> |\n"; } else { print "<a href=\"$deze_pagina?offset=$nieuwe_offset\">$i</a> |\n"; } } if (!(round($offset/$limiet)==$paginas-1) && $paginas!=1) //volgende afdrukken (behalve indien laatste pagina of bij maar 1 pagina) { $nieuwe_offset=$offset+$limiet; print "<a href=\"$deze_pagina?offset=$nieuwe_offset\">Volgende</a>\n"; } } } ?> [/code:1:0a2c90bad0] Kan iemand me helpen?
Link naar reactie
Beetje rigoureus: "SELECT * FROM berichten" Probeer het eens met (bijvoorbeeld): "SELECT * FROM berichten LIMIT $pagnr*10, 10" LIMIT heeft twee argumenten, start en increment. Als je als start de increment met het paginanummer vermenigvuldigt, heb je steeds de juiste selectie en haal je niet meer op dan je nodig hebt. Om het totaal aantal te bepalen kun je een count opdracht doen. "SELECT count * FROM berichten" Alles even snel uit het hoofd, maar het principe klopt.
Link naar reactie
[edit] Ik heb wat zitten knutselen en heb nu een andere code. Er zitten een paar opties meer in. De links worden nu gemaakt maar er staan teveel links. Er staan 12 links (tot 120 querys) maar er staan maar 12 querys in de database. [code:1:53ee7d4355] <?php include "ipadres.php"; //berheerders ip adres $ip2 = $HTTP_SERVER_VARS["REMOTE_ADDR"]; // bezoekers ip adres ?> <html> <head> <link rel='stylesheet' type='text/css' href='gastenboek.css'><!--include css file--> </head> <body> <center> <table border='1' bordercolor="#743A3A"><br><!--begin form tabel--> <br> <form action="plaatsbericht.php" method="POST"><!--begin form--> <tr><td>*Naam: </td><td><input type="text" name="afzender"></td></tr> <tr><td>Email: </td><td><input type="text" name="email"></td></tr> <tr><td>Website: </td><td><input type="text" name="url" value="http://www."></td></tr> <tr><td>*Bericht: </td><td><textarea name="bericht" cols="50" rows="4"></textarea></td></tr> <tr><td><input type="submit" value="Plaats bericht!"></td> <td><center>De velden met een * zijn verplicht</center></td></tr> </form><!--einde form--> </table><!--einde form tabel--> <?php echo($ip2); ?><!--echo bezoekers ip--> </center> <hr> </body> </html> <center> <?php $db = mysql_connect("localhost", "username", "password");//maakt verbinding mysql_select_db("gastenboek");//selecteerd database $sql = mysql_query("SELECT * FROM berichten ORDER by datum DESC");//maakt sql query $number = ceil(mysql_num_rows($sql)/10); $start = (isset($_GET['start']))? $_GET['start'] : 10; $pages = mysql_num_rows($sql); $sql = mysql_query("SELECT * FROM berichten ORDER by datum DESC LIMIT $start, 10");//maakt sql query while ($record = mysql_fetch_assoc($sql)){//while lus die de gegevens laat zien echo("<table border='1' bordercolor='#743A3A'>"); echo("<tr><td width='100'>Afzender: </td><td width='300'>{$record['username']}</td></tr>"); if (strlen($record['email']) > 0) { echo("<tr><td width='100'>Email: </td><td width='300'><A HREF='mailto:{$record['email']}'>{$record['email']}</A></td></tr>"); } else { echo("<tr><td width='100'>Email: </td><td width='300'>Geen e-mail opgegeven</td></tr>"); } if (strlen($record['url']) > 0) { echo("<tr><td width='100'>Website: </td><td width='300'><A HREF='{$record['url']}'>{$record['url']}</A></td></tr>"); } else{ echo("<tr><td width='100'>Website: </td><td width='300'>Geen website opgegeven</td></tr>"); } echo ("<tr><td width='100'>Berichtdatum: </td><td>{$record['datum']}</td></tr>"); echo ("<tr><td width='100'>Bericht: </td><td width='300' height='50'>{$record['bericht']}</td></tr>"); echo("<br>"); if ($ip == $ip2){ //kijken of bezoekers ip gelijk is aan beheerders ip, zoja, echo verwijderen echo("<tr><td><A HREF='bericht_verwijderen.php?bericht_id={$record['bericht_id']}'>Verwijderen</A></td></tr></table><hr>"); } elseif ($ip3 == $ip2){ echo("<tr><td><A HREF='bericht_verwijderen.php?bericht_id={$record['bericht_id']}'>Verwijderen</A></td></tr></table><hr>"); } else { echo("</table><hr>"); } } echo("<center>Copyright by Webmasters <A HREF='http://www.computeren.tk'>.:{Computeren.tk}:.</A> 2003-2004</center>"); ?> <? if($pages > 0){ for($i = 1; $i <= $pages; $i++){ echo " <a href=\"gastenboek.php?start=".(($i-1) * 10)."\">|".$i."|</a> "; } } ?> </center> [/code:1:53ee7d4355] Ow ja, hij echoot de querys wel goed, maar het gaat nu om de nummering. Als die werkt werkt het gastenboek:D
Link naar reactie
[edit]Na nog meer kloten, is hij er weer ingekomen en werkt hij :D Alleen het laatste bericht wordt niet weergeven(bericht met id = 1) [code:1:2e06b5cfc1]<?php mysql_connect("localhost", "username", "password");//maakt verbinding mysql_select_db("gastenboek");//selecteerd database $sql = mysql_query("SELECT * FROM berichten ORDER by bericht_id DESC");//maakt sql query $berichten = mysql_num_rows($sql); include "ipadres.php"; //berheerders ip adres $ip2 = $HTTP_SERVER_VARS["REMOTE_ADDR"]; // bezoekers ip adres ?> <html> <head> <link rel='stylesheet' type='text/css' href='gastenboek.css'><!--include css file--> </head> <body> <center> <table border='1' bordercolor="#743A3A"><br><!--begin form tabel--> <br> <form action="plaatsbericht.php" method="POST"><!--begin form--> <tr><td>*Naam: </td><td><input type="text" name="afzender" value="<?PHP echo $afzender; ?>"></td></tr> <tr><td>Email: </td><td><input type="text" name="email" value="<?PHP echo $email; ?>"></td></tr> <tr><td>Website: </td><td><input type="text" name="url" value="<?PHP echo $url; ?>"></td></tr> <tr><td>*Bericht: </td><td><textarea name="bericht" cols="50" rows="4" value="<?PHP echo $bericht; ?>"></textarea></td></tr> <tr><td><input type="submit" value="Plaats bericht!"></td> <td><center>De velden met een * zijn verplicht</center></td></tr> </form><!--einde form--> </table><!--einde form tabel--> <?php echo($ip2); echo "<br>"; ?><!--echo bezoekers ip--> <?php echo "Er zijn \"$berichten\" berichten"; ?> </center> <hr> </body> </html> <center> <center> <?php $number = round(mysql_num_rows($sql)/10); $start = (isset($_GET['start']))? $_GET['start'] : 10; $sql = "SELECT * FROM berichten ORDER by bericht_id DESC LIMIT $start, 10";//maakt sql query $resultaat = mysql_query($sql); while ($record = mysql_fetch_object($resultaat)){//while lus die de gegevens laat zien echo("<table border='1' bordercolor='#743A3A'>"); echo("<tr><td width='100'>Bericht id: </td><td width='300'>$record->bericht_id</td></tr>"); echo("<tr><td width='100'>Afzender: </td><td width='300'>$record->afzender</td></tr>"); if (strlen($record['email']) > 0) { echo("<tr><td width='100'>Email: </td><td width='300'><A HREF='mailto:{$record['email']}'>$record->email</A></td></tr>"); } else { echo("<tr><td width='100'>Email: </td><td width='300'>Geen e-mail opgegeven</td></tr>"); } if (strlen($record->url) > 0) { echo("<tr><td width='100'>Website: </td><td width='300'><A HREF='{$record['url']}'>$record->url</A></td></tr>"); } else{ echo("<tr><td width='100'>Website: </td><td width='300'>Geen website opgegeven</td></tr>"); } echo ("<tr><td width='100'>Bericht: </td><td width='300' height='50'>$record->bericht</td></tr>"); echo ("<tr><td width='100'>Berichtdatum: </td><td>$record->berichtdatum</td></tr>"); echo("<br>"); if ($ip == $ip2){ //kijken of bezoekers ip gelijk is aan beheerders ip, zoja, echo verwijderen echo("<tr><td><A HREF='bericht_verwijderen.php?bericht_id=$record->bericht_id'>Verwijderen</A></td></tr></table><hr>"); } elseif ($ip3 == $ip2){ echo("<tr><td><A HREF='bericht_verwijderen.php?bericht_id=$record->bericht_id'>Verwijderen</A></td></tr></table><hr>"); } else { echo("</table><hr>"); } } echo("<center>Copyright by Webmasters <A HREF='http://www.computeren.tk'>.:{Computeren.tk}:.</A> 2003-2004</center>"); ?> <? if($number != 0){ echo " <a href=\"gastenboek.php?start=".(($i > 1) / 10)."\">| vorige 10 |</A> ";//creëer vorige link for($i = 1; $i <= $number; $i++){ echo " <a href=\"gastenboek.php?start=".(($i-1) * 10)."\">|".$i."|</a> "; } echo " <a href=\"gastenboek.php?start=".(($i > 1) * 10)."\">| volgende 10 | </A> ";//creëer volgende link } ?> </center> [/code:1:2e06b5cfc1]
Link naar reactie
[quote:d5144a1290="Rens_uit_His"][edit]Na nog meer kloten, is hij er weer ingekomen en werkt hij :D Alleen het laatste bericht wordt niet weergeven(bericht met id = 1)[/quote:d5144a1290]Zonder je code echt helemaal bekeken te hebben... [b:d5144a1290]>[/b:d5144a1290] ergens vervangen door [b:d5144a1290]>=[/b:d5144a1290] ? ([url=http://nl.php.net/manual/nl/language.operators.comparison.php]Comparison Operators[/url])
Link naar reactie
Thnx, nu werkt het. Alleen is de vorige link de eerste link geworden. De volgende link is laatste link geworden. Maar jah, dat is niet erg. [edit] Ik weet al iets hoe ik een volgende link kan maken, maar daarvoor heb ik de url van de gebruiker nodig. Hoe kan ik die opvragen? bijvoorbeeld: De gebruiker zit op: http://localhost/computeren.tk/gastenboek.php?start=10. Hoe kan ik die dan opvragen? Want als ik die heb hoef ik dit maar te doen: [code:1:ebd496066d] <?php $url = hier de weburl; $nieuwe_url=$url+10; print "<a href=\"gastenboek.php?start=$nieuwe_url\">Volgende</a>\n"; } ?> [/code:1:ebd496066d] En dan werkt het :D En dan kunnen we daar trouwens ook de vorige link mee maken :D .
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...