[MySQL] Requete UPDATE complexe ?

Résolu
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 :)
Configuration: Windows XP
Firefox 2.0.0.14

10 réponses

  1. Impossible, on ne fait pas de AND avec un Update,
    une seule commande par Update c'est normal que plus ne marche pas.
    1. Salut,
      mysql_query("UPDATE TA_TABLE (SET value='" . $value ."' WHERE name='" . $name . "') AND (SET value='" . $value2 . "' WHERE name='" . $name2 . "')");
      1. 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 ? :)
        1. Re,
          $table c'est une variable contenant le nom de ta table?
          1. 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 :)
            1. donc obligé de faire mes 17 requete d'affilées ?
              erf :P

              Bon bah c'est partit alors... merci :)
              1. Ok, ben essaie ça :
                mysql_query("UPDATE " . $table . " (SET value='" . $name ."' WHERE name='name');
                mysql_query("UPDATE " . $table . " (SET value='" . $slogan . "' WHERE name='slogan')");
                1. 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 :)
                  1. 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 :)