par
Louisss » 03 févr. 2006, 11:48
Mario, merci pour ton "or die(mysql_error());", ça m'a permis de toruver la solution.
VaN, le problème ne venait pas du manque de ' autour de Id puisqu'il est de type numérique (smallint). Ceci dit, comme phpmyadmin en met lorsqu'il génère la requête, je pense que ça n'a pas d'importance. En tout cas, maintenant, ça fonctionne sans ces quotes.
D'autre part, le doublon de ; à la fin de ma requête n'en est pas un. En fait là encore phpmyadmin termine ses requêtes par un point-virgule pour la requête. D'où mes 2 ; successifs : celui de la requête et celui de la commande php. Il me semble que ça fonctionne aussi dans les deux cas.
Truc, je ne suis pas sûr d'avoir bien compris ta question mais en tout cas, je suis sûr qu'il y a des données à modifier avec un Id égal à 2. Mon formulaire de sélection d'un enregistrement à modifier propose un menu déroulant alimenté par les Id présents dans la table, donc pas de risque de ce côté là.
Le problème par contre, est assez intéressant compte tenu de sa subtilité : c'est dans le champ Contenu que ça coinçait, car l'enregistrement Id = 2 avait le mot suivant dans son contenu : d'article. Compte tenu du fait que la champ Contenu de ma requête était entouré de quotes, ça créait une erreur de syntaxe avec le quote de d'article. J'ai donc modifié ma requête de la façon suivante :
Code : Tout sélectionner
$requete = "UPDATE blog SET Auteur = \"".$_POST['auteur']."\", Titre = \"".$_POST['titre']."\", Contenu = \"".$_POST['contenu']."\", Date = '".$annee."/".$mois."/".$jour."', Categorie = \"".$_POST['categorie']."\" WHERE Id = ".$_POST['id'].";";
En gros, j'ai remplacé les ' par \" pour tous les champs de type texte.
Mario, merci pour ton "or die(mysql_error());", ça m'a permis de toruver la solution.
VaN, le problème ne venait pas du manque de ' autour de Id puisqu'il est de type numérique (smallint). Ceci dit, comme phpmyadmin en met lorsqu'il génère la requête, je pense que ça n'a pas d'importance. En tout cas, maintenant, ça fonctionne sans ces quotes.
D'autre part, le doublon de ; à la fin de ma requête n'en est pas un. En fait là encore phpmyadmin termine ses requêtes par un point-virgule pour la requête. D'où mes 2 ; successifs : celui de la requête et celui de la commande php. Il me semble que ça fonctionne aussi dans les deux cas.
Truc, je ne suis pas sûr d'avoir bien compris ta question mais en tout cas, je suis sûr qu'il y a des données à modifier avec un Id égal à 2. Mon formulaire de sélection d'un enregistrement à modifier propose un menu déroulant alimenté par les Id présents dans la table, donc pas de risque de ce côté là.
Le problème par contre, est assez intéressant compte tenu de sa subtilité : c'est dans le champ Contenu que ça coinçait, car l'enregistrement Id = 2 avait le mot suivant dans son contenu : d'article. Compte tenu du fait que la champ Contenu de ma requête était entouré de quotes, ça créait une erreur de syntaxe avec le quote de d'article. J'ai donc modifié ma requête de la façon suivante :
[code]
$requete = "UPDATE blog SET Auteur = \"".$_POST['auteur']."\", Titre = \"".$_POST['titre']."\", Contenu = \"".$_POST['contenu']."\", Date = '".$annee."/".$mois."/".$jour."', Categorie = \"".$_POST['categorie']."\" WHERE Id = ".$_POST['id'].";";
[/code]
En gros, j'ai remplacé les ' par \" pour tous les champs de type texte.