Requete qui fonctionne qu'a motie

Requete qui fonctionne qu'a motie - PHP - Programmation

Marsh Posté le 04-10-2005 à 14:31:38    

Salut,
 
Ben voila un script qui permet de mettre des commentaires sur un article mais ma requete ne fonctionne pas trop, enfin si, elle affiche tout dans la base, sauf le pseudo du commentateur et le texte du commentaires, par contre l'ID de l'article associé en commentaire (recupéré par URL avec un $_GET) ca elle l'affiche.
Voila mon code, j'espere l'avoir bien commenté.
 
 

Code :
  1. //formulaire pour ecrire un commentaires, j'utilise TinyMCE pour la redaction
  2. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  3. <textarea name="commentaire" cols="60" rows="15"></textarea>
  4. <p>Pseudo : <input type="Texte" name="pseudo" /></p>
  5. <p><input type="submit" name="submit" value="Valider" /></p>
  6. </form>
  7. //fin formulaire
  8. <?
  9. //appel des différents fichiers ou je stock des variables
  10. include ("variables.php" );
  11. include("connection_base.php" );
  12. //AFFICHAGE DES COMMENTAIRES DEJA PRESENTS
  13.  
  14.   //je recupère par URL l'id de l'article ou sera associé le commentaire
  15.   $id_article = $_GET['id_article'];
  16.   $requete= "SELECT texte_commentaire, pseudo FROM commentaires WHERE id_article= '$id_article'";
  17.   $resultat=mySQL_query($requete);
  18.   $val=mySQl_fetch_array($resultat);
  19.   $commentaire=$val ["texte_commentaire"];
  20.   $pseudo=$val ["pseudo"];
  21. ?>
  22. //hopla la j'affiche les commentaires deja présents pour l'article
  23. <div id=contenup ><?echo $commentaire;?></div>
  24. <div id=contenup><?echo$pseudo;?></div>
  25. <?//FIN AFFICHAGE DES COMMENTAIRES
  26. //Recuperation des infos formulaires pour l'edition d'un nouveaux commentaire
  27. $commentaire_new =  ($_POST['commentaire']);
  28. $pseudo_new = ( $_POST['pseudo'] );
  29. //requete d'insertion dans la base
  30. mysql_query("INSERT INTO commentaires (texte_commentaires,ID_article,pseudo) VALUES ('$texte_commentaire',$id_article,'$pseudo') " );
  31. ?>
  32. </body>
  33. </html>


 
En fait je crois que ca cloche au niveau de ma requete, car quand je teste les variables $commentaire_new et $pseudo_new avec un echo, elle contiennent bien ce que je veux inserer dans la base.....

Reply

Marsh Posté le 04-10-2005 à 14:31:38   

Reply

Marsh Posté le 04-10-2005 à 14:57:39    

Super et si maintenant tu faisais une requette en utilisant les bonnes variables?

Reply

Marsh Posté le 04-10-2005 à 15:07:11    

oups lol.
Mais nan ca marche quand meme pas...  
je me demande ce que c'est doit y avoir autre chose

Reply

Marsh Posté le 04-10-2005 à 15:34:15    

ben alors fait un echo de la requette, tu véras bien ce qu'il en est.

Reply

Marsh Posté le 04-10-2005 à 17:59:55    

Soit j'ai rien compris, soit t'essaies d'afficher plusieurs lignes d'une table sans boucler et tu fais un insert sans vérifier que qqun a posté... joli. [:mlc]
 
Manque pleins de isset/empty, sinon...

Reply

Marsh Posté le 04-10-2005 à 19:18:55    

sielfried a écrit :

Soit j'ai rien compris, soit t'essaies d'afficher plusieurs lignes d'une table sans boucler et tu fais un insert sans vérifier que qqun a posté... joli. [:mlc]
 
Manque pleins de isset/empty, sinon...


 
Ouais je sais mais la c'est une beta de chez beta, y'a que moi qui utilise le script pour l'instant, apres je me doute que je peux pas le mettre comme ca sur un site en ligne....
Mais la il est bien buggé et je galère, quand je poste un commentaire il me met 2 lignes dans la base, une avec l'ID de l'article, et l'autre ligne avec le texte du commentaire  :heink:  
 
je suis paumé, voila le code actuel.
J'ai l'impression que le $_GET fait deconner des trucs.
Cependant je suis debutant en php c'est mon premier site avec, j'apprend en gros sur le tas, si tu peux me distiller quelques conseils sur le script ou sur le dev PHP en general je suis preneur!  
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>Affichage News</title>
  5. <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  6. <meta name="generator" content="HAPedit 3.1">
  7. </head>
  8. <body bgcolor="#FFFFFF">
  9. <?
  10.   include ("variables.php" );
  11.   include("connection_base.php" );
  12.   $auteur =($_SESSION['login']);
  13.   $requete= "SELECT * FROM $table_article ORDER BY id_article DESC";
  14.   $resultat=mySQL_query($requete);
  15.   $nb =mysql_num_rows($resultat);
  16.   $i="0";
  17.   while ($i!=$ilimit && $val=mySQl_fetch_array($resultat))
  18.   {
  19.   $i++;
  20.    $id=$val["ID_article"];
  21.    $titre=$val ["Titre_article"];
  22.    $texte=$val ["Texte_article"];
  23. ?>
  24. <?//affichage du titre?>
  25. <div id=contenuh2 ><?echo $titre;?></div>
  26. <?//affichage du texte de la news?>
  27. <div id=contenup><?echo$texte;?></div>
  28. <div id=footerarticles>
  29. <p><b><i><?echo"<a href='comment.php?id_article=$id'> commentaires</a>"?></i></b>
  30. </div>
  31. <?
  32. }
  33. ?>
  34. ?>
  35. <br>
  36. <br>
  37. <br>
  38. </body>
  39. </html>


Reply

Marsh Posté le 04-10-2005 à 19:37:31    

Pq est-ce que la majorité des bricolages aboutissent dans cette cat ? [:pingouino]
 

Citation :

fait un echo de la requette


 
Please ?


Message édité par sircam le 04-10-2005 à 19:37:49

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 04-10-2005 à 19:46:42    

je vois pas a quoi ca me servirait un echo de la requete, je fais un echo sur les variables que je met dans la requete elle sont correcte

Reply

Marsh Posté le 04-10-2005 à 20:19:00    

mongroidus a écrit :

il me met 2 lignes dans la base, une avec l'ID de l'article, et l'autre ligne avec le texte du commentaire  :heink:


On ne le dira jamais : UNE SEULE requette POUR TOUTES les colones de la table et PAS UNE POUR CHAQUE colone !!!

Reply

Marsh Posté le 04-10-2005 à 20:33:03    

Citation :

je vois pas a quoi ca me servirait un echo de la requete, je fais un echo sur les variables que je met dans la requete elle sont correcte


Un petit coup de pelle à clous pour remettre tes idées en place ? [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 04-10-2005 à 20:33:03   

Reply

Marsh Posté le 04-10-2005 à 20:41:33    

mongroidus a écrit :

je vois pas a quoi ca me servirait un echo de la requete, je fais un echo sur les variables que je met dans la requete elle sont correcte


 
 [:the real moins moins]


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 04-10-2005 à 21:04:30    


[:florentg]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 04-10-2005 à 22:07:11    

omega2 a écrit :

On ne le dira jamais : UNE SEULE requette POUR TOUTES les colones de la table et PAS UNE POUR CHAQUE colone !!!


 
euh, c'est pas ce que j'ai fait?
 

Citation :

Un petit coup de pelle à clous pour remettre tes idées en place ? [:pingouino]


 
euh, je debute  [:ninipc]  
 
mais je n'oblige personne a m'aider, mais si vous etes la expliquez moi un peu le but de toutes les manips que vous me proposez? je concois que les boulets c'est chiant, mais avant de connaitre un langage faut passer par le stade boulet

Message cité 1 fois
Message édité par mongroidus le 04-10-2005 à 22:10:49
Reply

Marsh Posté le 05-10-2005 à 09:33:20    

Tu cherches pas à comprendre comment marche ce que tu essaies d'utiliser.
 
Et c'est ça qui fait que tu es un boulet. Essaies d'abord de comprendre ce que tu fais, et de lire les docs officielles sur php.net des fonctions que tu utilises...


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 05-10-2005 à 10:52:07    

mongroidus a écrit :

euh, c'est pas ce que j'ai fait?

Si t'as une ligne dans la base pour l'ID du commentaire sans le texte et l'autre avec le texte du commentaire sans l'ID, alors non c'est pas ce que t'as fait. Et dans un tel cas, il n'y a pas besoin de code pour s'en rendre comtpe, le résultat se suffit à lui même pour le savoir.
 
Et fait, un echo de tes requettes, si tu savais le nombre de fois qu'un tel echo m'a permis de débugguer les intéractions avec la base de donnée, tu serais sur le cul. Et même aprés avoir bossé pendant plus de 5 ans tous les jours et une bonne partie de mes soirées avec des bases de données, ca m'aide toujours autant.
Si on te dit de le faire, c'est pas pour rien et c'est pas pour t'emmerder. Si on te dit de le faire, c'est que c'est vraiment utile et que t'en passer revient à te compliquer la tache.

Reply

Marsh Posté le 05-10-2005 à 19:12:31    

omega2 a écrit :

Si t'as une ligne dans la base pour l'ID du commentaire sans le texte et l'autre avec le texte du commentaire sans l'ID, alors non c'est pas ce que t'as fait. Et dans un tel cas, il n'y a pas besoin de code pour s'en rendre comtpe, le résultat se suffit à lui même pour le savoir.
 
Et fait, un echo de tes requettes, si tu savais le nombre de fois qu'un tel echo m'a permis de débugguer les intéractions avec la base de donnée, tu serais sur le cul. Et même aprés avoir bossé pendant plus de 5 ans tous les jours et une bonne partie de mes soirées avec des bases de données, ca m'aide toujours autant.
Si on te dit de le faire, c'est pas pour rien et c'est pas pour t'emmerder. Si on te dit de le faire, c'est que c'est vraiment utile et que t'en passer revient à te compliquer la tache.


 
Ok. Mais en fait j'ai refait mon code, avec toutes les verif necessaires comme on me l'a conseillé plus haut, et la tout fonctionne niquel.
Je m'etais un peu lancé dans le script sans trop savoir ou j'allais, et mon code c'etait un tas de m**** impossible a debugger.
Tout ca pour dire que je m'excuse d'avoir été boulet c'etait pas mon intention.
Enfin voila, en essayant de me corriger moi même et avec l'aide de certains sites, ben je pense avoir bien progressé. Merci pour votre aide!


Message édité par mongroidus le 05-10-2005 à 19:12:57
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed