10 msg pour un sujet par page

Eléphant du PHP | 417 Messages

16 juil. 2011, 04:01

Bonsoir à tous le monde je veux afficher des sujets que j'ai dans une table je fait une requete sql et tous marche bien sauf que sa affiche tous les sujets dans une seul page ex :

Sujet 1
sujet 2
sujet 3
.
.
.

comment faire pour que s'affiche que 10 sujet par page et me faire des liens vers les page suivantes ? ex

sujet 1
sujet 2
sujet 3
.
.
.
Sujet 10

page 2 3 4 5 6 ....

comment dans tous les forum on trouve un sujet avec 10 reponse dans une page puis un lien vers une 2 page pour voir les message 11 juska 20 puis un lien de 3 page .....
Merci d'avance :)

devlop78
Invité n'ayant pas de compte PHPfrance

16 juil. 2011, 04:35

Ca s'appelle une pagination, et tu peux voir ça sur mysql avec LIMIT

Eléphant du PHP | 417 Messages

16 juil. 2011, 15:30

Ca s'appelle une pagination, et tu peux voir ça sur mysql avec LIMIT
Super ta réponse cette fois :)

encore une question j'essaye de faire une requete sql pour sélection des donnée dans une BDD mais classé de new -->> ancien mais mon problem si classé selon la date et heur cad faut dabord vsélectionné selon les dates puis classé selon heur ex

jj/mm/aaaa
11/01/2011 à 16:00
11/01/2011 à 15:00

comment faire ça? en peux faire un truc commen ça ou pas ? SELECT * FROM table order by date and time DESC

ou pas?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 juil. 2011, 16:18

La syntaxe n'est pas tout à fait la bonne, mais tu peux :)

En fait, dans la clause ORDER BY, tu indiques le nom de la ou des colonnes selon lequel les enregistrements retournés doivent être triés, en les séparant par des virgules (et pas des "and" :))
ORDER BY date, time DESC 
va donc trier les enregistrement par date croissante, et pour ceux qui ont la même date, va les organiser par heure décroissante.

Attention toutefois au nom de tes colonnes : "date" est un mot clé réservé en sql (type de colonne), et le fait de l'utiliser comme nom de colonne peut parfois poser problème... il vaut donc mieux éviter (genre "date_message", ...)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 417 Messages

18 juil. 2011, 20:41

La syntaxe n'est pas tout à fait la bonne, mais tu peux :)

En fait, dans la clause ORDER BY, tu indiques le nom de la ou des colonnes selon lequel les enregistrements retournés doivent être triés, en les séparant par des virgules (et pas des "and" :))
ORDER BY date, time DESC 
va donc trier les enregistrement par date croissante, et pour ceux qui ont la même date, va les organiser par heure décroissante.

Attention toutefois au nom de tes colonnes : "date" est un mot clé réservé en sql (type de colonne), et le fait de l'utiliser comme nom de colonne peut parfois poser problème... il vaut donc mieux éviter (genre "date_message", ...)

MERCi Ryle c'est vraiment sympa ^^ ça marche super bien ^^

dommage que ça marche pas avec And lol :mrgreen:

sinon merci encore j'ai eu les résultats que je veux :)

c'est non j'ai une autre question ^^ en ce moment ou j'écrit sur l'éditeur de site phpfrance j'aimerai savoir si vous avez une aidé sur des éditeur que je peux intégrer a mon forum ? psk en fait je suis entrain de coder un forum et j'ai besoin d'un éditeur pour ajouter des sujet :)

Merci

devlop78
Invité n'ayant pas de compte PHPfrance

18 juil. 2011, 20:59

Regarde les éditeurs WYSIWYG

Ils y en a pas mal, tu peux les tester en ligne.

Eléphant du PHP | 417 Messages

19 juil. 2011, 14:27

Regarde les éditeurs WYSIWYG

Ils y en a pas mal, tu peux les tester en ligne.
Merci j'ai trouver déja un autre pas mal mais je vais essayé le tien :)

enfait j'ai un autre problème qd j'ajoute un commentaire qd je click sur valider bah tt se passe bien mais le commentaire ajouter il s'afficher pas direct parmi les commentaires mais il faut actualisé la page pour qu'il s'affiche :(
$max=ceil(($total+1)/($messagesParPage)); // $total c'est le nombre des commentaire pour le sujet en question $messageParPage c'est le nombre des msg par //page 
			echo '<form action="topic.php?topic_id='.$_GET["topic_id"].'&page='.$max.'" method="post"  name="send_post">';
			echo '<table  cellspacing="1" width="100%">';
				echo '</tr><td><textarea id="commentaires" rows="6" cols="80" name="reponse_rapide" style="color:blue;"></textarea></td></tr>';
				echo '<tr><td><input type="submit" id="send_post" name="send_post" value="R&eacute;ponse rapide" style="height:25px; width: 150px;"></td></tr>';
			echo '</form>';
			echo '</table>';
et voici le script pour ajouter le commentaire et modifier d'autre chose dans dautre table genre le nb des post pour le membre la date de mise a jour de sujet
	if (!empty($_POST["send_post"]))
	{
		$date_post = date("Y-m-d");
		$time_post = date("H:i");
		$post = "INSERT INTO posts VALUES ('', '".$_GET['topic_id']."', '".addslashes($_SESSION['pseudo'])."', '".addslashes($_POST['reponse_rapide'])."', '".$date_post."', '".$time_post."')";
		$requete_post = mysql_query($post, $cnx) or die (mysql_error() );
		$topic = "UPDATE topic SET date_mise_jour='".$date_post."', time_mise_jour='".$time_post."' WHERE id_topic='".$_GET['topic_id']."'";
		$requete_topic = mysql_query($topic, $cnx) or die (mysql_error() );
		$nb_post = 'SELECT nb_post FROM membres WHERE pseudo ="'.$_SESSION["pseudo"].'" ';
		$nb = mysql_query($nb_post, $cnx) or die (mysql_error() );
		$new_nb = $nb + 1;
		$membre_post = 'UPDATE membres SET nb_post ="'.$new_nb.'" WHERE pseudo="'.$_SESSION["pseudo"].'" ';
		$new_nb_post = mysql_query($membre_post, $cnx) or die (mysql_error() );
	}	

devlop78
Invité n'ayant pas de compte PHPfrance

19 juil. 2011, 16:43

Oui, bah sans lire ton code j'imagine que tu enregistres le commentaire après avoir créé l'affichage ... Donc si t'inverses le processus, en procédant d'abord aux modifications du modèle (base de données), et ensuite à sa consultation pour l'affichage, il n'y aura plus de problèmes.

Eléphant du PHP | 417 Messages

19 juil. 2011, 17:22

Oui, bah sans lire ton code j'imagine que tu enregistres le commentaire après avoir créé l'affichage ... Donc si t'inverses le processus, en procédant d'abord aux modifications du modèle (base de données), et ensuite à sa consultation pour l'affichage, il n'y aura plus de problèmes.

oui c'était ça le probleme ^^ j'affiche avant de faire le traitement d'ajout ^^