Php requete mysql avec variable sql
Fermé
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...).
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:
- Php requete mysql avec variable sql
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Retour a la ligne php ✓ - Forum PHP
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
5 réponses
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
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
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
8 oct. 2009 à 21:50
8 oct. 2009 à 21:50
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.
Donc oui, 3 requêtes, l'utilisation d'une variable mysql devient dont caduque.
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
8 oct. 2009 à 22:25
8 oct. 2009 à 22:25
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. :)
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. :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question