récupérer la valeur d'une colonne maj avec update - PHP - Programmation
Marsh Posté le 06-07-2008 à 09:21:47
ReplyMarsh Posté le 06-07-2008 à 22:54:05
sans faire de select car récupérer une valeur par select n'est pas fiable lorsque des utilisateurs peuvent avoir une action sur les données lues
Mon code est optimisé en faisant celà :
$query5="update publicite set clic=clic+1,quantiteutil=quantiteutil+1 where idpub='$idpub' and quantiteutil<quantite";
$result5 = mysql_query($query5, $connection) or die('error making query');
La méthode peu fiable est la suivante :
faire un select et récupérer la valeur de la colonne clic puis y ajouter 1 et affecter cette nouvelle valeur avec un update set clic=$clicincrement
$clicincrement contenant les clics récupérés auparavant plus un clic
Marsh Posté le 07-07-2008 à 07:38:42
pas30 a écrit : sans faire de select car récupérer une valeur par select n'est pas fiable lorsque des utilisateurs peuvent avoir une action sur les données lues |
Euh. Pas sûr d'avoir compris, mais t'as la notion de transaction, si nécessaire, si ta base est en InnoDB...
Marsh Posté le 05-07-2008 à 23:23:10
Bonjour,
Je cherche à mettre à jour un fichier mysql :
Voici le code très simple :
Code :
$query5="update publicite set clic=clic+1,quantiteutil=quantiteutil+1 where idpub='$idpub' and quantiteutil<quantite";
$result5 = mysql_query($query5, $connection) or die('error making query');
Je mets donc à jour le fichier publicite uniquement si la colonne quantiteutil est inférieur à la colonne quantite
si le fichier est bien mis à jour (récupéré avec mysql_affected_rows), j'aimerais récupéré la valeur de la colonne quantiteutil et quantite afin de vérifier qu'elles n'ont pas la même valeur.
Pour expliquer plus clairement ce que je souhaite, en fait j'ai des publicités avec des quantités achetées par les annonceurs, quantiteutil correspond aux quantités utilisées et quantite aux quantités achetées par l'annonceur.
Dans le cas ou les deux valeurs sont identiques celà signifie que la campagne vient de se terminer dans ce cas j'aimerais envoyer un email à l'annonceur pour l'avertir de la fin de sa campagne.
Voilà pourquoi j'ai besoin de récupérer les valeurs de ces deux colonnes après MA mise à jour. Si une mise à jour est faîte dans la micro-seconde après je ne veux pas la nouvelle valeur des deux colonnes mais bien celles de ma mise à jour. Celà évitera que soit l'annonceur reçoive 20 mails au lieu d'un seul.