Bepaald aantal berichten op pagina

Door Simon Blok, 18 jaar geleden, 2.517x bekeken

Ik was op zoek naar een script die je 100en ;) berichten van een forum verdeelde in verschillende pagina's, ik kon eigelijk nergens een goed script vinden. Dus zelf maar eentje gebouwd. En hier het resultaat. Het is misschien niet allemaal even netjes, maar het werkt!ben aant werk aan een betere versie.

onderaan de pagina komt gwoon te staan: vorige 1 2 3 volgende, vorige en volgende verdwijnen als je op respectievelijk de eerste en de laatste pagina bent.

opmerkingen zijn welkom!!!

Voorbeeld: http://forum.saimen.nl

Gesponsorde koppelingen

PHP script bestanden

  1. bepaald-aantal-berichten-op-pagina

 

Er zijn 16 reacties op 'Bepaald aantal berichten op pagina'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
PHP erik
PHP erik
18 jaar geleden
 
0 +1 -0 -1
Je kunt het aantal veel beter met "SELECT COUNT(*) FROM tabel" berekenen vanwege snelheid. In plaats van mysql_num_rows() dus.

Waar haal je $tid vandaan?

Waarom niet gewoon een LIMIT in je query?
Simon Blok
Simon Blok
18 jaar geleden
 
0 +1 -0 -1
OK...count gebruik is eigelijk nooit, maar idd het werkt wel sneller ja, bedankt!!
en srry er was iets weggevallen, de query zelf stond er nog niet tussen, met dat LIMIT dus:) hopelijk klopt hij nu wel!
ArendJan
ArendJan
18 jaar geleden
 
0 +1 -0 -1
Je hebt mijn tip dus opgevolgd? :)
The Beeding Clown
The Beeding Clown
18 jaar geleden
 
0 +1 -0 -1
netjes script, maar wat nou als ik meerdere variablen in de $_GET/url heb staan ??

Mischien is het ook geen gek iedee om de $_GET['page'] op geldigheid te cheken ;)
PHP Newbie
PHP Newbie
18 jaar geleden
 
0 +1 -0 -1
wow, forum zelf geschreven?
Jeroen Langenberg
Jeroen Langenberg
18 jaar geleden
 
0 +1 -0 -1
Werkt perfect :) Dankje!
Jason de Ridder
Jason de Ridder
18 jaar geleden
 
0 +1 -0 -1
Heb je het echt zelf geschreven? Want ik kan mij herrineren dat ik ooit ook zo'n script gepost had en lijkt echt onwaarschijnlijk veel op die van jou!
Arjan W
Arjan W
18 jaar geleden
 
0 +1 -0 -1
Leuk
Simon Blok
Simon Blok
18 jaar geleden
 
0 +1 -0 -1
ja, heb ik echt zelf geschreven!!!dus niet van iemand anders:)en forum ook zelf ja,maar is niet zo moeillijk or!
meerder variabelen?ik snap het niet helemaal, maar als je bedoelt dat de link volgende en vorige deze variabelen moet hebben is het gewoon een kwestie van de variabelen achter de link zetten:).
De geldigheid moet inderdaad gecontroleerd worden. Ik zal het verwerken in een latere versie.
The Beeding Clown
The Beeding Clown
18 jaar geleden
 
0 +1 -0 -1
wat ik bedoelde is:

index.php?page=2&tid=7

als je nu het script inbouwd hoe het nu is word de $_GET['tid'] niet mee genomen in de links van de pagina nummers, dit kan je trouwens heel makkelijk oplossen door het volgende te doen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

$query_string
= '';

foreach($_GET as $key => $value)
{

   if($key != 'page')
   {

      $query_string .= '&amp;'.$key.'='.$value;
   }
}


?>


Achter de links van de pagenummers gooi je dan gewoon de variable $query_string ;)
Tim
tim
18 jaar geleden
 
0 +1 -0 -1
vraagje...
waar zet je de berichten dan???
Lissy Pixel
Lissy Pixel
18 jaar geleden
 
0 +1 -0 -1
@ Nano : hoe en waar zet je jouw oplossing dan in bovenstaande script? Hoe wordt dan de link?
The Beeding Clown
The Beeding Clown
18 jaar geleden
 
0 +1 -0 -1
Je moet het iig boven de for() loop zetten, bij de links in de forloop zet je de variable $query_string erachter, deze bevat namelijk dan de overige variablen die eventueel in de url staan.

(vergeet de variable ook niet achter de vorige en volgende links te zetten)
Michael VDR
Michael VDR
18 jaar geleden
 
0 +1 -0 -1
HEY echt een super script ! Vroeg me al lang af hoe je zoiets moest programmeren !
Kan ik echt wel gebruiken voor mijn blog systeem en mijn enquĂȘtesysteem dat ik nog ga programmeren.
Dankuwel !
Thijs
Thijs
18 jaar geleden
 
0 +1 -0 -1
ik heb het script in gebruik alleen ik heb 1 probleem

De volgende / vorige knop staat niet onder in de pagina maar tussen het laatste bericht en het bericht daarvoor.. weet iemand wat ik fout doe?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Niek Kasius
Niek Kasius
16 jaar geleden
 
0 +1 -0 -1
Het werkt bij mij in zovere dat het in beeld verschijnd en dat het navigeerd maar niets meer dan dat, want ik heb om het te testen ff 20 genummerde berichtjes in mijn nieuwssysteem gezet, ik heb het eerst met het orginele script geprobeerd en naarderhand aangepast maar het resultaat blijft het zelfde ik krijg steeds de zelfde reacties te zien.
hieronder het volledige script zoals ik het gedaan heb.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include("config.php");
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include("ubb.php");
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$aantal
= mysql_num_rows(mysql_query("SELECT * FROM nieuws"));
?>

<html>
<head>
<title>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($titel); ?>
</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<center>
<h4>DC Hofland Nieuws</h4>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

if ($actie == "show"){

$query2 = mysql_query("SELECT * FROM nieuws WHERE id='" .$_GET["id"] ."'");
while($show = mysql_fetch_object($query2)){
echo"
<table width=\"650\" border=\"1\" cellspacing=\"5\" cellpadding=\"5\">
<tr>
<td>$nieuws->titel</td>
</tr>
<tr>
<td><b>Door: $nieuws->naam<br>Reactie: "
; echo ubb($nieuws->bericht); echo"</td>
</tr>
<tr>
<td align=\"right\"><font size=\"1\">$nieuws->datum</font></td>
</tr>
</table>"
;

}
}
else{

$query = mysql_query("select * from nieuws ORDER BY id DESC LIMIT 5");
while($nieuws = mysql_fetch_object($query)){
echo"
<table width=\"650\" border=\"1\" cellspacing=\"5\" cellpadding=\"5\">
<tr>
<td>$nieuws->titel</td>
</tr>
<tr>
<td>Door: $nieuws->naam<br>Reactie: "
; echo ubb($nieuws->bericht); echo"</td>
</tr>
<tr>
<td align=\"right\"><font size=\"1\">$nieuws->datum</font></td>
</tr>
</table><br>"
;
}
}

?>


<!--begin pagina nivigatie-->

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
//aantal berichten berekenen
$reacties = mysql_query("SELECT * FROM nieuws");
$aantalberichten = mysql_num_rows($reacties);

//aantal pagina's berekenen (10 berichten op pagina)
$aantpages = $aantalberichten/5;
$page = $_GET['page'];
$begin = $page * 10;
$eind = 10;




$berichten = mysql_query("SELECT * FROM nieuws LIMIT $begin,$eind");
while($object = mysql_fetch_object($berichten))
{

    $bericht = $object->bericht;
}






$vorige = $page - 1;
$volgende = $page + 1;
if(!$page==0){
echo'<a href="nieuws.php?page='.$vorige.'&aantber='.$aantalberichten.'"">vorige</a>&nbsp;';
}

i==0;
for ($i = 0; $i < $aantpages; $i++)
{

    $i2 = $i + 1;
    if($page==$i && $aantalberichten > 5)
    {

        echo '<font color=#ff0000><b>'.$i2.'</b>&nbsp;</font>';
    }



    elseif($aantalberichten > 6)
    {

        echo '<a href="nieuws.php?page='.$i.'&aantber='.$aantalberichten.'">'.$i2.'</a> ';

    }

}



if($aantpages > 1 && $volgende < $aantpages)
{

    echo'<a href="nieuws.php?page='.$volgende.'&aantber='.$aantalberichten.'">volgende</a>';
}

?>


<!--einde navigatie-->

</center>
</body>
</html>

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. bepaald-aantal-berichten-op-pagina

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.