syntaxe requete

donatello
Invité n'ayant pas de compte PHPfrance

15 sept. 2005, 15:28

Bonjour,
j'ai créé une requête pour mysql
$query1 = "SELECT * FROM '". $table . "' WHERE Idannonce ='". $id ."'";
et je reçois l'erreur 1064
Erreur de syntaxe près de ''achat' WHERE Idannonce ='1'' à la ligne 1
je ne vois pas où j'ai péché...pouvez vous m'aider?

Mammouth du PHP | 19672 Messages

15 sept. 2005, 15:36

Tu as péché mon fils par excès de zèle en mettant des apostrophes autour d'une donnée de type Int : Tu me diras pour ta repentance 10 "Notre PHP qui êtes au Web, Que votre code soit corrigé..."
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

15 sept. 2005, 15:50

ach, merci grand prêtre, je mérite de brûler en enfer.
sinon j'ai un parse error à cette ligne, que je ne comprends pas mieux
$query2 = "INSERT INTO corbeille_annonces VALUES ('".$ret1['Idannonce']."','".$ret1['table']."','".$ret1['Date']."','".$ret1['Type']."','".$ret1['Pieces']."','".$ret1['Adresse']."','".$ret1['Cpostal']."','".$ret1['Ville']."','".$ret1['Prix']."','".$ret1['Surface']."','".$ret1['Annonce']."')";

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 sept. 2005, 16:11

Il vaut mieux que tu utilises cette commande que la tienne :

Code : Tout sélectionner

$query2 = "INSERT INTO corbeille_annonces(champ1,champ2,champ3,champ4,champ5,champ6) VALUES('".$valeur1."','".$valeur2."','".$valeur3."','".$valeur4."','".$valeur5."','".$valeur6."')";
Sinon j'avoue ne pas voir d'erreurs réels dans ta commande :-k

As-tu testé que toutes les variables existent et retournent bien quelque chose ?
Modifié en dernier par charabia le 15 sept. 2005, 16:14, modifié 1 fois.

Mammouth du PHP | 19672 Messages

15 sept. 2005, 16:13

Peux-tu m'afficher le message d'erreur exact, parce qu'à première vue, je ne vois pas d'etteur sauf des apostrophes encore autour d'une vauer de type (probable) INT : ce qui devrait donc donner:
<?php
$query2 = "INSERT INTO corbeille_annonces 
           VALUES (". $ret1['Idannonce'] .",
                   '". $ret1['table'] ."',
                   ". $ret1['Date'] .",
                   '". $ret1['Type'] ."',
                   '". $ret1['Pieces'] ."',
                   '". $ret1['Adresse'] ."',
                   '". $ret1['Cpostal'] ."',
                   '". $ret1['Ville'] ."',
                   '". $ret1['Prix'] ."',
                   '". $ret1['Surface'] ."',
                   '". $ret1['Annonce'] ."'
                  )";
?>
L'autre problème probable, c'est que certaines valeurs comportent dansle texte des apostrophes non échappées qui vient en conflit avec les apostrophes SQL de la requête: un addslashes() serait approprié sur les données textes.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

15 sept. 2005, 16:41

ok, peeerfecto, tout fonctionne. merci bcp.