bigornot Posté 4 Avril 2004 Partager Posté 4 Avril 2004 (modifié) je veux afficher une table entiere, mais, quand j'essaie, ca n'affiche que 1 message ( le premier, selon le classement en id comment fzire pour que ca affiche tout ? partie head : <?$msg = "rzte";include("config.php");_AT_mysql_connect($db_chemin,$db_user,$db_pass) or die("Impossible de se connecter à la base de données");_AT_mysql_select_db("bdbourgeron") or die("Impossible de se connecter à la base de données");$query = "SELECT * FROM bistrot ORDER BY id DESC ";$result = "mysql_query($query)";$nb = "mysql_fetch_array($result)";?> partie body : <?phpecho "<br>".$nb['titre'];echo "<br>".$nb['message'];echo "<br>".$nb['ps'];?> Modifié 4 Avril 2004 par bigornot Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 4 Avril 2004 Partager Posté 4 Avril 2004 Salut bigornot, mysql_fetch_array() ne retourne que le record suivant, ou false s'il n'y en a plus. Il faut donc le mettre dans une boucle comme: while ($nb = mysql_fetch_array($result)) { echo "<br>".$nb['titre']; echo "<br>".$nb['message']; echo "<br>".$nb['ps'];} Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 4 Avril 2004 Auteur Partager Posté 4 Avril 2004 bah tiens ... j'ai trouvé le moyen de planter un ordi ! en effet, ca me l'a affiché ( le mess ) indefiniment ... en fait, ca veut dire quoi "while" et comment on s'en set ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 4 Avril 2004 Auteur Partager Posté 4 Avril 2004 surtout que ca m'a affiché toujours le meme mess, pas toute le table ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Country Posté 4 Avril 2004 Partager Posté 4 Avril 2004 while en fait c'est une boucle. Sa peut se traduire ~ comme sa : Tant que (cette condition est vraie) alors action a éxécuterFin Tant que Donc tant que la condition entre parenthèse est vraie alors il exécutera le code entre { et }. Si comme dans ton cas sa t'as affiché le mess indéfiniment alors tu as du faire une faute et la condition était toujours vraie (bloucle infinie). Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 4 Avril 2004 Auteur Partager Posté 4 Avril 2004 mais oui, mais, alors, on ne peut pas arreter manuellement la boucle ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 4 Avril 2004 Auteur Partager Posté 4 Avril 2004 je vous invite a aller jeter un oeil à : http://bdbourgeron.free.fr/redesign/bistrot/ pasque la, ca bug dur ! le m qui se repete, c'etait le mess d'essai ... mais, il apparait encore ! j'ai pourtant supprimmé la table ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 4 Avril 2004 Partager Posté 4 Avril 2004 Bonjour, la boucle conditionnelle while signifie : tant que (condition est vrai){ // faire ceci } Comment ca marche ? Il y a plusieurs facons d'utiliser while. L'une d'elles est d'afficher toutes les lignes d'un fichier. Ca donne ceci : // on ouvre le fichier :pointeur_fichier = ouvre fichier.// tant que ce n'est pas la fin du fichier :tant que ( NON fin_fichier (pointeur_fichier) // on lit la ligne suivante : ligne = lecture_ligne(pointeur_fichier). on écrit la ligne (dans son navigateur) que l'on vient d'extraire du fichier : ecrire ligne. // on a fini la boucle, on met un arret de boucle. FIN tant que // on a fini de lire le fichier, on ferme le fichier.ferme_fichier Que va faire ce programme ? Il va ouvrir le fichier, lire la première ligne, écrire la première ligne, et en arrivrant à la "FIN tant que", va regarder la condition : On n'est pas à la fin du fichier ? On refait un tour. On lit donc la deuxième ligne. On l'écrit. On est à la fin du fichier ? Non. On refait un tour... etc, etc. On est à la fin ? oui ? Donc, on sort de la boucle. On ferme le fichier. Voilà. Pour ton problème de mmmmmmmm.., donnes nous le code qui donne cette boucle. A+, Anonymus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 6 Avril 2004 Auteur Partager Posté 6 Avril 2004 voila mon code ... <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <? $msg = "rzte"; include("config.php"); _AT_mysql_connect($db_chemin,$db_user,$db_pass) or die("Impossible de se connecter à la base de données"); _AT_mysql_select_db("bdbourgeron") or die("Impossible de se connecter à la base de données"); $query = "SELECT * FROM bistrot ORDER BY id"; $result = "mysql_query($query)"; ?> <title>index.php</title> <meta name="author" content="Franck Bourgeron"> <meta name="publisher" content="Franck Bourgeron"> <meta name="generator" content="HTML Creator 3.5.1"> </head> <body> <?php while ($nb = "mysql_fetch_array($result)") { echo "<br>".$nb['titre']; echo "<br>".$nb['message']; echo "<br>".$nb['ps']; } ?> <form type="submit" action="ok.php"> titre ========:<input type="text" name="titre" size="20" align="center"><br> message ======:<textarea rows="20" name="message" cols="20"></textarea><br> post-scriptum :<textarea rows="20" name="ps" cols="20"></textarea><br> <br> <br> <input type="submit" value="envoyer" align="center"> </form> </body> </html> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 6 Avril 2004 Partager Posté 6 Avril 2004 Enlèves les apostrophes "" entre les fonctions de php. Ainsi, while ($nb = "mysql_fetch_array($result)") { devient : while ($nb = mysql_fetch_array($result)) { et $result = "mysql_query($query)"; devient : $result = mysql_query($query); A+, Anonymus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
-ZN- Posté 6 Avril 2004 Partager Posté 6 Avril 2004 Tu as aussi la solution php.net > documentation > fonctions mysql ... c'est tres bien explique, et tu peux faire un copier coller des exemples (qui fonctionnent tres bien!) Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 6 Avril 2004 Auteur Partager Posté 6 Avril 2004 oulalah ! ca m'enerve mais ca m'enerve ... :mad2: :mad2: maintenant, c'est la partie mysql du formulaire ... pourtant, ca me semble correct ! : <?phpinclude ("config.php");$rate = "nonononon !";$msg = "la connexion a echoue";$db = mysql_connect($db_chemin,$db_user,$db_pass) or die ($msg);$selectdb = "mysql_db_query(INSERT INTO bistrot('pseudo','titre','message','ps') VALUES ('$pseudo,$titre,$message,$ps')) or die ($rate)";$mysql_titre = "mysql_db_query(INSERT INTO bistrot('titre') VALUES ('$titre')) or die ($rate)";$mysql_mess = "mysql_db_query(INSERT INTO bistrot('message') VALUES ('$message')) or die ($rate)";$date = "strftime('%d/%m/%y %H:%M:%S')";$mysql_reste = "mysql_db_query(INSERT INTO bsitrot('pseudo','date',ps') VALUES ('$pseudo,$date,$ps')) or die ($rate)";if($titre == "" ){ echo " Vous devez mettre un titre ";}else{$mysql_titre;}if($message == "" ){ echo " Vous devez mettre un message";}else{$mysql_mess;}$mysql_reste;?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 6 Avril 2004 Partager Posté 6 Avril 2004 Dans tes requètes, tu mets parfois : bistrot, parfois bsitrot... L'abus d'alcool serait ...... ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 6 Avril 2004 Partager Posté 6 Avril 2004 De plus, dans cette ligne, et les semblables : $selectdb = "mysql_db_query(INSERT INTO bistrot('pseudo','titre','message','ps') VALUES ('$pseudo,$titre,$message,$ps')) or die ($rate)"; il te faut, comme expliqué plus haut : - enlever les guillemets doubles qui entourent les fonctions, et en mettre autours des requètes sql. Ca donnerait : $selectdb = mysql_db_query("INSERT INTO bistrot('pseudo','titre','message','ps') VALUES ('$pseudo,$titre,$message,$ps')) or die ($rate); Ensuite, la fonction mysql_db_query s'ecrit avec le nom de la db, comme paramètre. Mais... Ensuite, la fonction mysql_db_query est obsolète depuis php 4.0.6, il faut la remplacer par mysql_query. Hum... En fait, elle ne fait pas grand chose, ton code. Peux tu expliquer ce que tu veux faire, avec ? Et la structure de la table bistrot ? stp ? s'il y a un identifiant, par exemple comme id_bistrot, ou autre, et s'il est auto increment, etc .? Anonymus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 6 Avril 2004 Auteur Partager Posté 6 Avril 2004 précise ta question, svp ... ma structure : id, date, pseudo, titre, message, ps ce petit code sert a ajouter ... ( dans le bistrot ) le bistrot est un mini-forum, déstiné a etre rapide ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 6 Avril 2004 Auteur Partager Posté 6 Avril 2004 ah ! modification faite ! maintenant, ca oscille entre parse error ( line, ca change en fonction des modifs : une ligne que je croyais reussie redevien en parse error ... !) et entre or die ($msg) .... Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 6 Avril 2004 Auteur Partager Posté 6 Avril 2004 c'est bon, merci, j'ai réussi ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 7 Avril 2004 Partager Posté 7 Avril 2004 Tu peux redonner le code, s'il te plait, je pense qu'il y a une autre erreur, dans l'ordre des INSERT Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 7 Avril 2004 Auteur Partager Posté 7 Avril 2004 <?php include ("config.php"); mysql_connect($db_chemin,$db_user,$db_pass); mysql_select_db("bdbourgeron"); if($message == "") { echo " Vous devez mettre un message ou un titre"; } else { mysql_query("INSERT INTO bistrot(message,titre,ps) VALUES ('$message','$titre','$ps')") or die ("..."); } ?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
bigornot Posté 7 Avril 2004 Auteur Partager Posté 7 Avril 2004 ah ! tiens ? j'ai un pitit probleme ... ca ne montre pas le dernier messae ... ca ne le montre que quand il y a un avant dernier ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 7 Avril 2004 Partager Posté 7 Avril 2004 Dans le code que tu donnes au dessus : Tu fais 'INSERT INTO bistrot (-pseudo,titre,message) puis 'INSERT INTO bistrot (message) puis ... A chaque fois, cela créé une ligne supplémentaire dans ta base de données, dans ta table bistrot. Concrètement, ta table ressemble à ceci : id | ---- pseudo ---- | ---- titre ---- | ---- message ---- | 1 |.....Anonymus....|......untitre.....| .....un message....| 2 | .......................|.....................|.....un message....| 3 | ....... Dan .......| ....autre titre..|encore un message| 4 | .......................| ....................|encore un message| 5 | ....bigornot.......|encore.un.titre|...et un message...| 6 |........................|.....................|...et un message...| "Les petits points sont juste faits pour assurmer l'alignement." C'est à dire : A chaque fois que tu fais appel à INSERT INTO, cela te créé une ligne supplémentaire dans la table. Or, si tu ne remplis pas les champs correctement, cela te donnera des champs vides, là où tu cherches à les remplir. En fait : Faire une requète 'INSERT INTO (pseudo,titre,message) te permet de remplir tous les champs d'un coup. La requète pour modifier un enregistrement existant est UPDATE .... SET .... . Pour ce qui est de ton problème de dernier message, il nous faut la boucle mysql_fetch_array. Voilà.A+, Anonymus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant