problem de requete

Eléphant du PHP | 110 Messages

26 mars 2007, 11:55

salut j'ai un probleme avec une requete.
Je voudrais dans ma base remplacé toutes les valeurs égales à aliments dans un champ par viande.
voila ce que j'ai ecris:

Code : Tout sélectionner

REPLACE INTO `nutrition-santé` ( `catégorie` ) VALUES ( `viande` ) WHERE ( `catégorie` = "aliments" )
mais ca ne marche pas. j'ai essaye avec insert aussi mais ca veut pas non plus.
j'ai mis qu'un champ catégorie dans replace into mais il y en a d'autres dans ma table aussi, je ne sais pas si c'est correct :(

si vous pouvez m'aider ca m'interesse :)
merci!

Mammouth du PHP | 1353 Messages

26 mars 2007, 12:14

bonjour,

personnellement je recommande l'usage de la fonction UPDATE...

Code : Tout sélectionner

"UPDATE nutrition-santé SET catégorie= 'viande' WHERE catégorie= 'aliments'"
ceci dit le problème ne vient peut être pas de la...
Modifié en dernier par guilt92 le 26 mars 2007, 12:16, modifié 2 fois.
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 mars 2007, 12:15

Pour entourer du texte, on utilise ' et non `

D'une manière générale, je décourage fortement l'utilisation de ` autour des colonnes :
  • Cette syntaxe est propre à MySQL et ne fonctionne pas sous d'autres SGBD.
  • cette syntaxe permet d'utiliser des noms de colonnes non standards (avec des espaces, avec des accents, ...) qui risquent, un jour ou l'autre de poser des soucis
Dans le but de t'épargner des soucis à venir, je te déconseille donc d'utiliser `tout court. Comme ça, tu sais tout de suite si tes noms de champs sont valides ou non

PS : attention, PhpMyAmin utilise ces `. Exemple à ne pas suivre ...
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 110 Messages

26 mars 2007, 13:19

merci bien, ca marche avec update.
PAr contre je comprends pas bien, sous php myadmin les ` sont obligatoires apparemment. j'ai teste avec des ' et ca passait pas. alors ma question est :
si j'utilise les ' et pas les ` ca passera sous mysql mais pas avec php myadmin?

merci
bonne journée

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 mars 2007, 14:28

Quand tu met des accents dans le nom de tes tables, l'utilisation de `est nécessaire pour que mysql retrouve le nom.

PhpMyAdmin utilise ces quotes par défaut.

PhpMyAdmin ne fait qu'encapsuler la construction de requête MySQL.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 110 Messages

26 mars 2007, 18:04

ok merci :)