Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2011, 10h36   #1
Invité régulier
 
Inscription : janvier 2003
Messages : 32
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 32
Points : 9
Points : 9
Par défaut Récupérer valeur d'un UPDATE

Bonjour,

J'ai une table "table_chrono" qui ne contient qu'une seule colonne "chrono" et qu'un seul enregistrement de type entier, qui est incrémenté par une requête UPDATE dans mon code PHP.
J'ai donc quelque chose de ce type dans mon code :

Code :
$q = mysql_query("UPDATE table_chrono SET chrono=chrono+1");
J'aimerais récupérer la valeur de "chrono+1" après mon UPDATE. J'ai imaginé plusieurs solutions, mais aucune ne me convient :
- Faire un SELECT juste après mon UPDATE, mais dans ce cas si un autre UPDATE a été effectué entre temps, je ne récupèrerai pas la bonne valeur ;
- Faire un LOCK sur la table "table_chrono" avant le UPDATE, puis faire un SELECT et faire un UNLOCK ensuite, mais je n'ai pas les droits pour faire un LOCK ;
- Modifier mon champ "chrono" en auto_incrément et faire des INSERT plutôt que des UPDATE pour récupérer la valeur avec "mysql_insert_id()", mais je me retrouverai avec des tonnes d'enregistrements qui ne servent pas et il faudra mettre en place un système de purge.

Bref, existe-t-il un moyen auquel je n'ai pas pensé ? Est-il possible de récupérer la valeur modifiée sans faire un deuxième requête ?

Merci !
PsychedeChed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 23h31   #2
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 329
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 329
Points : 1 657
Points : 1 657
Une autre solution serait de faire un SELECT avant de faire l'update.

Faire l’incrémentation en PHP et enfin updater avec la valeur obtenue en PHP.

Par contre, si le script s’exécute 2 fis en même temps ya des chances pour que il n'y ai que une incrémentation de 1 au lieu de 2 au final.

Apres sinon, tu peux peut être regarder du coté des transactions.
__________________
Zend Certified Engineer PHP 5.3

« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h30.


 
 
 
 
Partenaires

Hébergement Web