Plusieurs pages dans un forum
Résolu
Oniros
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
ilan27 Messages postés 394 Date d'inscription Statut Membre Dernière intervention -
ilan27 Messages postés 394 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- Plusieurs pages dans un forum
- Supprimer une page dans word - Guide
- Abonnement iptv illegaal forum - Forum Box et Streaming vidéo
- Plinko avis forum ✓ - Forum Vos droits sur internet
- Comment ralentir un compteur linky forum - Accueil - Objets connectés
- Coco chat alternative forum ✓ - Forum Réseaux sociaux
5 réponses
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>";
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>";
Attends j'ai oublié de te dire d'initialiser les variables $temoin=0; et $nbmessparpage=20; ou 30 ou ce que tu veux!
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 !
Merci beaucoup et en plus c'est tout simple à faire !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question