Rechercher : dans
Par :

[MySQL] Requete UPDATE complexe ?

Dernière réponse le 27 jun 2008 à 16:03:02 xxkirastarothxx, le 27 jun 2008 à 14:47:34 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [MySQL] Requete UPDATE complexe ? » dans :
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
SQL - Jointures VoirExpression des jointures Une jointure (ou θ-jointure) est un produit cartésien de deux tables. On appelle équijointure une θ-jointure dont la qualification est une égalité entre deux colonnes. En SQL, l'expression d'une jointure se...

1

Sky34gl3, le 27 jun 2008 à 14:55:48

Salut,
mysql_query("UPDATE TA_TABLE (SET value='" . $value ."' WHERE name='" . $name . "') AND (SET value='" . $value2 . "' WHERE name='" . $name2 . "')");

Répondre à Sky34gl3

2

xxkirastarothxx, le 27 jun 2008 à 14:58:09

Merci :)
j'essaye ça de suite :)

Répondre à xxkirastarothxx

3

xxkirastarothxx, le 27 jun 2008 à 15:05:49

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 ? :)

Répondre à xxkirastarothxx

4

Sky34gl3, le 27 jun 2008 à 15:07:23

Re,
$table c'est une variable contenant le nom de ta table?

Répondre à Sky34gl3

5

xxkirastarothxx, le 27 jun 2008 à 15:23:26

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 :)

Répondre à xxkirastarothxx

6

alexdelareunion, le 27 jun 2008 à 15:29:46
  • +2

Impossible, on ne fait pas de AND avec un Update,
une seule commande par Update c'est normal que plus ne marche pas.

Répondre à alexdelareunion

7

xxkirastarothxx, le 27 jun 2008 à 15:34:17

Donc obligé de faire mes 17 requete d'affilées ?
erf :P

Bon bah c'est partit alors... merci :)

Répondre à xxkirastarothxx

8

Sky34gl3, le 27 jun 2008 à 15:36:39

Ok, ben essaie ça :
mysql_query("UPDATE " . $table . " (SET value='" . $name ."' WHERE name='name');
mysql_query("UPDATE " . $table . " (SET value='" . $slogan . "' WHERE name='slogan')");

Répondre à Sky34gl3

9

xxkirastarothxx, le 27 jun 2008 à 15:50:09

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 :)

Répondre à xxkirastarothxx

10

 Sky34gl3, le 27 jun 2008 à 16:03:02

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 :)

Répondre à Sky34gl3
Collection CommentÇaMarche.net