PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 05-06-2010 03:22:09

Hooli
Membre
Inscription : 05-06-2010
Messages : 4

[Résolu] Erreur requête sql.

Bonjour, bonsoir.

J'essaie de faire en php, un script pour créer un sondage. Le tout en dynamique.  OU l'administrateur décide du nombre de réponse possible. Ceci fonctionne jusqu'au moment ou il faut insérer les réponses dans la base de donnée.


          for($i=1; $i<=$nb_champ; $i++)
          {
            $requetesql[$i]= "INSERT INTO sondage(reponse$i)
VALUES ('$reponse[$i]') WHERE id_sondage='$sondage_id' AND titre_sondage= '$titre'"; 
            $execsql[$i]=mysql_query($requetesql[$i]) or die('Erreur SQL ! <br />'.$requetesql[$i].'<br />'.mysql_error());
          }

Si j'enlève la clause WHERE de la requête les réponses s'ajoutent mais avec un nouvel id a chaque fois et ce n'est pas ce que je souhaite.
Je veux que cela insert les réponses dans la ligne qui porte le même id que le titre.

La table sondage se présente comme ci (je n'autorise que 4 réponses maximum) :

id_sondage (clé primaire)
titre_sondage(varchar 100)
reponse1
reponse2
reponse3
reponse4

je débute en php en autodidacte et j'essaie de tout faire moi même pour apprendre mais là je trouve pas la solution puisque c'est un problème issue d'un "bricolage". Si vous aviez une proposition je suis tout ouï.

Hooli.

Dernière modification par Hooli (05-06-2010 07:15:38)

Hors ligne

#2 05-06-2010 05:57:09

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Erreur requête sql.

On ne fait pas d'insert avec un where car tu insert forcement dans une table précise.
Si tu souhaites avoir un seul et même enregistrement c'est pas comme ça qu'il faut faire.

1) vérifier que l'enregistrement existe
2) s'il existe => update
    s'il n'existe pas => insert

Hors ligne

#3 05-06-2010 07:02:11

Hooli
Membre
Inscription : 05-06-2010
Messages : 4

Re : [Résolu] Erreur requête sql.

Salut, tout d'abord merci de ta remarque je vais suivre tes conseils je reviens si j'ai un soucis wink

Bon après essai sa ne fonctionne toujours pas, l'erreur qui apparait est celle-ci si sa peut aider.

  Erreur SQL !
UPDATE sondage(reponse1) SET ('oui') WHERE id_sondage='5' AND titre_sondage= 'Ouverture du site'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(reponse1) SET ('oui') WHERE id_sondage='5' AND titre_sondage= 'Ouverture du si' at line 1

Pour régler ce problème s'il vous faute d'autres infos n'hésiter pas à demander ^^

Dernière modification par Hooli (05-06-2010 07:06:02)

Hors ligne

#4 05-06-2010 07:12:16

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Erreur requête sql.

la s1axe exacte est :

UPDATE NomTeTable SET Nomdechamp = 'Valeur", AutreNomDechamp='AutreValeure' Where NomDeChampX = 'Condition'

bon courage wink

a++

Hors ligne

#5 05-06-2010 07:15:13

Hooli
Membre
Inscription : 05-06-2010
Messages : 4

Re : [Résolu] Erreur requête sql.

Résolu merci à vous deux smile

Hors ligne

#6 05-06-2010 20:08:57

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : [Résolu] Erreur requête sql.

Bonsoir,

Si je peux me permettre de rajouter un petit commentaire
sur l'extrait de code suivant


WHERE id_sondage='5' AND titre_sondage= 'Ouverture du si' at line 1
 

Si il est utilisé la clé primaire dans la clause where (ici id_sondage) il n'est pas necessaire d'inclure d'autres conditions car par définition la clé primaire d'une table est ce qui défini de manière unique un enregistrement de celle-ci. De plus si dans le rajout des critères supplémentaires inutiles (sauf dans un cas de mise à jour conditionnelle) y a une erreur de syntaxe ou de paramètre, ca fait du debuggage inutile^^.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums