erreur de syntaxe : comment la corriger?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : erreur de syntaxe : comment la corriger?

par albat » 28 juin 2006, 12:16

Normalement, tes messages d'erreur devraient t'indiquer
avec suffisamment de précision l'origine des erreurs.

Tu peux aussi te mettre des repères en utilisant la fonction die()
qui se lance en cas d'échec d'une requête.
$res1 = mysql_result($req1) or die("Requête 1 plantée");
// ...
$res2 = mysql_result($req2) or die("Requête 2 plantée");
// ...
Ça te permettra d'isoler avec certitude la requête en cause.

par wenddy » 28 juin 2006, 11:47

OK, c'est ce que j'ai fait, j'ai lancé "select...." en ajoutant la virgule au bon endroit, mais pas de changement, j'ai toujours l'erreur sur mon site quand je veux afficher une liste de produits... :cry:

Est ce que l'erreur ne vient pas de la requête que j'ai lancée? (insert into) puisque c'est à la suite de cette requête que mon site plante...

par albat » 28 juin 2006, 11:42

Mais comment je dois corriger ça?
Est ce que je dois lancer ce "select.....20" dans phpmyadmin en ajoutant la virgule?
Ben ?... Naturellement ! :shock:

Ta requête plante à cause d'une faute de syntaxe.
Il te faut donc corriger cette faute. Tout simplement.

par wenddy » 28 juin 2006, 11:40

Si, il manque une virgule, c'est ce que j'ai dit dans mon message.
Mais comment je dois corriger ça? Est ce que je dois lancer ce "select.....20"
dans phpmyadmin en ajoutant la virgule?
Je précise que quand je lance la requête "insert into...." je n'ai pas de message d'erreur, mais l'erreur apparait directement sur mon site (pas dans phpmyadmin)

par albat » 28 juin 2006, 11:36

Manquerait pas une virgule ?... ;)
select p.products_image, pd.products_name, m.manufacturers_name, pd.products_description, p.products_id, p.manufacturers_id, p.products_price,

par albat » 28 juin 2006, 11:35

Le message d'rreur que tu indiques ne correspond pas à la requête INSERT INTO
mais plutôt (je vais vérifier en détail...) à la requête SELECT inscrite en-dessous.

erreur de syntaxe : comment la corriger?

par wenddy » 28 juin 2006, 11:32

Bonjour!

Débutante en php et mysql, j'ai fait une requête sql dans phpmyadmin et cela me donne un erreur. Est-ce que quelqu'un pourrait m'aider? D'après l'erreur, il manque une virgule entre "pd.products_description" et "p.products_id" (voir message d'erreur ci dessous). Que dois-je corriger pour ne plus avoir cette erreur?

Voila la reqête que j'ai lancée :

Code : Tout sélectionner

INSERT INTO `configuration` (`configuration_id`, `configuration_title`, `configuration_key`, `configuration_value`, `configuration_description`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES ('', 'Display Product Description', 'PRODUCT_LIST_DESCRIPTION', '99', 'Set to 0 to disable, set to 99 to enable.', '8', '11', '', '', NULL, NULL);
Et voila le message d'erreur :

Code : Tout sélectionner

1064 - Erreur de syntaxe près de '.products_id, p.manufacturers_id, p.products_price, p.products_t' à la ligne 1 select p.products_image, pd.products_name, m.manufacturers_name, pd.products_description p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id left join specials s on p.products_id = s.products_id, products_to_categories p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '1' and p2c.categories_id = '4' order by pd.products_name limit 0, 20
Merci à qui pourra m'expliquer comment ça marche!