Plusieurs pages dans un forum

Résolu/Fermé
Oniros Messages postés 20 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 6 octobre 2007 - 30 sept. 2007 à 18:19
ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 - 3 oct. 2007 à 17:35
Bonjour,

Je suis en train de créer un forum en php/mysql, et je voudrais faire la chose suivante :

quand un utilisateur clique sur un sujet, il a accès aux messages des autres utilisateus. Et bien je voudrais faire en sorte qu'au bout de 20 messages, l'utilisateur soit ramené sur la page n° 2, et que par la suite un lien vers cette deuxième page soit disponible quand l'utilisateur choisi un sujet. Et ainsi de suite pour les pages 3, 4, 5, etc...
Mais je ne sais absolument pas comment procéder...

Merci d'avance pour vos réponses.

5 réponses

ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 36
30 sept. 2007 à 20:08
Je peux te dire comment faire des liens vers des pages suivant le nb de messages, mais aller directement à la deuxième page s'il y en a un certain nombre, dans ce cas je te propose d'afficher tes messages dans l'ordre decroissant des dates d'insertion ou des id... et onvient directement sur le dernier message entré.
Voici le script: (dis moi si tu ne comprends pas, tu dois l'adapter à ta base de données)

$r1=mysql_query("SELECT COUNT(*) AS nb_messages FROM forum");
$donn1=mysql_fetch_array($r1);
$totalDesMessages = $donn1['nb_messages'];
//On a le nombre de messages total
$nombredepages = ceil($totalDesMessages / $nbmessparpage);
On arrondit au supérieur
if(isset($_GET['page'])){
//On a demandé une page en cliquant un lien
for($i=1; $i<=$nombredepages; $i++){
//On balaye les pages pour tomber sur celle qui a été demandée
if($_GET['page']==$i){
//On a demandé cette page i
$requet=mysql_query("SELECT * FROM forum ORDER BY id DESC LIMIT ". ($nbmessparpage*$i-$nbmessparpage) . "," . $nbmessparpage . "") or die(mysql_error());;
//On choisit les messages en fonction de la page demandée; Exemple: on a demandé la page 12, alors on affiche les messages a partir du n°(12*20)-20=220, contenant 20 messages
while ($donnees=mysql_fetch_array($requet)) {
//On affiche les données.Ex:
echo "<tr><font size='4' color='blue' face='arial'><td>";
echo $donnees['coord_temp'];
echo "</td><th> ";
echo $donnees['pseudo'];
echo "</th>";
echo "<td> ";
echo $donnees['message'];
echo "</td></font></tr>";
}
$temoin=1;//Pour témoigner comme quoi on a bien trouvé une page, on est rentré dans le if
}
}
if($temoin==0){ // On a demandé une page qui nexiste pas: erreur. Affiche la page 1 (car si temoin vaut 0, on est pas rentré dans le if...)
$query=mysql_query("SELECT * FROM ".$forum." ORDER BY id DESC LIMIT 0," . $nbmessparpage . "") or die(mysql_error());
while ($donneesA=mysql_fetch_array($requet)) {
//De meme on affiche les données de ces messages

}
}
}else{
//Rien demandé: affiche page1 par defaut
$query=mysql_query("SELECT * FROM ".$forum." ORDER BY id DESC LIMIT 0," . $nbmessparpage . "") or die(mysql_error());
while ($donneesA=mysql_fetch_array($query)) {
//Affichage des données des 20 premiers messages

}
}
echo "</b></table><br><br>";
0
Oniros Messages postés 20 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 6 octobre 2007
1 oct. 2007 à 09:48
Merci beaucoup !
Je vais essayer et je te tiens au courant.

encore merci.
0
ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 36
1 oct. 2007 à 14:20
Attends j'ai oublié de te dire d'initialiser les variables $temoin=0; et $nbmessparpage=20; ou 30 ou ce que tu veux!
0
Oniros Messages postés 20 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 6 octobre 2007
3 oct. 2007 à 17:20
ha ok j'ai comprit l'idée ! En fait quand on choisit une page, ca affiche les messages à partir d'un certain nombres de messages, suivant la page demandée.

Merci beaucoup et en plus c'est tout simple à faire !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 36
3 oct. 2007 à 17:35
Oui c'est exactement ça. Simple, mais il fallait y penser ;)
Donc c'est bon? ça marche?
0