[MySQL] Requete UPDATE complexe ?

Résolu/Fermé
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 - 27 juin 2008 à 14:47
 Utilisateur anonyme - 27 juin 2008 à 16:03
Bonjour à tous,

Je voudrais savoir s'il y a un moyen de faire une requete UPDATE complexe, de ce genre:

mysql_query("UPDATE $table (SET value="$value WHERE name="$name") AND (SET value="$value2" WHERE name="$name2")")

Je sais que la syntaxe de ma requête n'est pas bonne, mais je cherche quelques chose de similaire, ce qui m'eviterais d'avoir a écrire 30 requête d'affiliée :p

Merci d'avance :)
A voir également:

10 réponses

alexdelareunion Messages postés 545 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 9 octobre 2023 142
27 juin 2008 à 15:29
Impossible, on ne fait pas de AND avec un Update,
une seule commande par Update c'est normal que plus ne marche pas.
2
Utilisateur anonyme
27 juin 2008 à 14:55
Salut,
mysql_query("UPDATE TA_TABLE (SET value='" . $value ."' WHERE name='" . $name . "') AND (SET value='" . $value2 . "' WHERE name='" . $name2 . "')");
0
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
27 juin 2008 à 14:58
Merci :)
j'essaye ça de suite :)
0
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
27 juin 2008 à 15:05
voila j'ai mis cette requete:

mysql_query("UPDATE $table (SET value='" . $name ."' WHERE name='name') AND (SET value='" . $slogan . "' WHERE name='slogan')");

mais il ne se passe rien, quelqu'un pourrait me dire pourquoi ? :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
27 juin 2008 à 15:07
Re,
$table c'est une variable contenant le nom de ta table?
0
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
27 juin 2008 à 15:23
ouais j'oubliais ^^

$table = SQL_PRE.'config' ( j'ai un define("SQL_PRE", "g33k_"); )
=> quand je fais un echo j'ai bien " g33k_config "

c'est la table qui gère toute la config du site (comme un CMS)

enfait, ma table est faite de 3 champs:

id
name (name, slogan, language, statut ....)
value (Mon Site, Un Site Trop bien, french, on ...) etc...

j'ai fais un page de config ou on peut tout géré, mais j'aimerai faire une seule requête plutot que 17 d'affilée (nombre d'entrée)
Au pire c'est pas spécialement grave, mais ça allègerait bien je suppose :)
0
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
27 juin 2008 à 15:34
donc obligé de faire mes 17 requete d'affilées ?
erf :P

Bon bah c'est partit alors... merci :)
0
Utilisateur anonyme
27 juin 2008 à 15:36
Ok, ben essaie ça :
mysql_query("UPDATE " . $table . " (SET value='" . $name ."' WHERE name='name');
mysql_query("UPDATE " . $table . " (SET value='" . $slogan . "' WHERE name='slogan')");
0
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
27 juin 2008 à 15:50
je voulais seulement trouver un moyen de reduire, sinon la commande je la connais :)
je dirais même, plus simple:
mysql_query("UPDATE $table SET value='$name' WHERE name='name'");

pourquoi s'embêter avec la concaténation quand il n'y en a pas besoin ^^
Bon en tout cas ça marche :)

[résolu] même si j'ai pas vraiment trouver ce que je cherchais, j'ai eu ma reponse :p
Merci :)
0
Utilisateur anonyme
27 juin 2008 à 16:03
Ah ok, j'avais pas du tout saisi ta question de départ, mais après relecture, je comprends ^^. Oui, effectivement tu n'auras pas d'autre moyen de faire ce que tu veux. En fait, je croyais que tu disais que ça ne marchait pas en faisant sans concaténation, c'est pourquoi je t'avais proposé la méthode avec concaténation, ne réfléchissant pas du tout à la requête en elle-même :)
0