IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

récupérer la valeur d'une colonne maj avec update


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut récupérer la valeur d'une colonne maj avec update
    Bonjour,

    Je cherche à mettre à jour un fichier mysql :
    Voici le code très simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$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. Ma question c'est est-ce que $result5 contient l'enregistrement entièrement mis à jour ???
    Car si tel est le cas, récupérer les valeurs sera très simple car identique à un la récupération des valeurs avec un select
    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.

  2. #2
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Ben essaie,t'auras la réponse (enfin sur une base test...),mais je pense que c'est faisable... (avec un p'tit mysql_fetch_array()...)

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut
    Et bien non celà ne marche pas car mysql_fetch_array() retourne 1 comme valeur ce qui correspond aux nombres d'enregistrements modifiés par la requête donc faudrait une autre solution que celle-là

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 198
    Points : 185
    Points
    185
    Par défaut
    Ce qu'il voulait dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $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');
    $result=mysql_query("SELECT * FROM publicite where idpub='$idpub'") or die('Y a un bleme sur la selection');
    $recup=mysql_fetch_array($result);
    $quantiteutil=$recup['quantiteutil']; // Là tu récupères la valeur de quantiteutil
    $quantite=$recup['quantite']; // Là tu récupères la valeur de quantite
    Vala vala ..

  5. #5
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    A moins de faire un select après la requête update,je vois pas d'autre solution...

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 198
    Points : 185
    Points
    185
    Par défaut
    Oups... la tête dans le c** j'avais meme pas fait gaffe qu'il n'y avait pas de select .... lol.

    Je l'ai rajouté ....

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut
    Ce code n'est pas optimisé du tout car entre le update et le select les valeurs peuvent changer et celà fausse tout
    J'ai pensé à autre chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $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');
    $affected_rows5=mysql_affected_rows();
    if ($affected_rows5==1) {
    $query6="update publicite set fincampagne=NOW() where quantiteutil=quantite and fincampagne=''";
    $result6 = mysql_query($query6, $connection) or die('error making query');
    $affected_rows6=mysql_affected_rows();
    if ($affected_rows6==1) {
    //envoi du mail à l'annonceur
    }
    }
    Explication : la colonne fincampagne stocke la date et heure de fin de la campagne
    Cette solution ne m'enchante guère mais bon j'ai pas trouvé mieux et pourtant il doit y avoir bien mieux que çà

Discussions similaires

  1. En lotus script, comment récupérer la valeur d'une colonne
    Par oliverscan dans le forum Lotus Notes
    Réponses: 3
    Dernier message: 07/04/2010, 11h13
  2. Récupérer la valeur d'une colonne filtrées
    Par qmike dans le forum Excel
    Réponses: 3
    Dernier message: 15/02/2010, 22h03
  3. Récupérer la valeur d'une colonne en flex
    Par mine87 dans le forum Flex
    Réponses: 8
    Dernier message: 20/01/2010, 16h17
  4. Réponses: 5
    Dernier message: 14/08/2009, 15h17
  5. Récupérer la valeur d'une colonne de la ligne d'un DBGrid
    Par Oluha dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/10/2005, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo