Php requete mysql avec variable sql

nordiste -  
 nordiste -
Bonjour,
je cherche a inverser une valeur de 2 éléments dans la base de donnée.
a savoir une colonne position qui va donner l'ordre d'affichage des objets.
mon probleme est que cette requete fonctionne directement dans mysql mais pas avec PHP.

$numero = mysql_real_escape_string($_GET['id']);
$requete = "SET @t1= (select `position` from site_article where `id` = '$numero');
update site_article set `position` = @t1 where `position` = @t1 - 1;
update site_article set `position` = @t1 + 1 where `id` = '$numero';";
$resultat = mysql_query ($requete) or die(mysql_error());

donc soit on trouve une autre requete (imbriquee ?) ou je dois le faire en 3 requetes, et recuperer la réponse en PHP (ce qui me semble lourd...).
A voir également:

5 réponses

nordiste
 
au fait voici l'erreur :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update site_article set `position` = @t1 where `position` = @t1 - 1; update' at line 2
1
P@t@ch0n Messages postés 603 Statut Membre 85
 
mysql_query() n'accepte pas les requetes multiples, voilà où est l'erreur.

Donc oui, 3 requêtes, l'utilisation d'une variable mysql devient dont caduque.
0
nordiste
 
ok,
est-il possible d'imbriquer ce genre de requete ?
merci
0
P@t@ch0n Messages postés 603 Statut Membre 85
 
Non.

Mais quel en serait vraiment l'intérêt ?
Surtout que les requêtes update sont des requêtes très légères. ;)

En plus, j'imagine que ce script est pour un panel admin, donc utilisé peu fréquemment, cherche plutôt à bien indexer tes tables et optimiser les plus lourdes de tes requêtes select, et aussi utiliser éventuellement un système de cache pour ton site, c'est sur ces facteurs que l'on gagne beaucoup de performances. :)
0

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

Posez votre question
nordiste
 
ok, un grand merci pour les infos.
marc
0