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 :

Update avec resultat d'un select [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut Update avec resultat d'un select
    Bonjour,

    Bien je reviens vers vous car j'ai de nouveau un problème.
    Je vous détail tout, histoire de bien visualiser la chose.

    J'ai un site avec une bdd
    Lorsque des personnes se connectent, cela enregistre dans une table un ident a incrementation automatique, l'id propre a chaque personne (inscrit au préalable), l'heure de connexion.
    Lorsqu'ils se deconnectent, je voudrais enregistrer sur la meme ligne l'heure de deconnexion (via update)

    Pour la connexion, tout va bien.
    Pour la déconnexion, je dois donc d'abord trouver le dernier ident de l'id concerné histoire de pas mettre a jour toutes les anciennes connexions mais seulement la derniere.
    Le select fonctionne bien et me donne bien le dernier ident.
    Apres je fais un update en passant l'ident en parametre et la rien ne se passe:

    mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql_test = " SELECT access_id FROM track_e_access WHERE access_user_id='" . $uid . "' ORDER BY access_id DESC LIMIT 1";
     
    $access_id_sql = api_sql_query($sql_test, __FILE__, __LINE__);
     
     $sql_access = " UPDATE track_e_access SET access_date_decon= '" . Date("H.i.s") . "' WHERE access_id = '" . $access_id_sql . "'";
     
    $result = api_sql_query($sql_access, __FILE__, __LINE__);
    Lorsque je met access_id en dure style 474 ds le code ci-dessous ca marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql =  "UPDATE track_e_access SET access_date_decon= '" . Date("H.i.s") . "' WHERE access_id = '474' AND access_user_id='" . $uid . "'";
    $sql = api_sql_query($sql_test, __FILE__, __LINE__);
    Quelqu'un verrait ou est l'erreur?
    merci bcp

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    rergarde ce que tu as dans la variable $access_id_sql
    ce n'est peut-être pas la valeur que tu cherches mais une ressource

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut
    pourtant j'ai bien testé le select et il me renvoie bien le dernier ident

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut
    exact, cela me renvoie bien une ressource(?)
    comment faire alors pour affecter le resultat d'une requete a une variable?

  5. #5
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Citation Envoyé par zorba49
    exact, cela me renvoie bien une ressource(?)
    comment faire alors pour affecter le resultat d'une requete a une variable?
    mysql_fetch_assoc, mysql_fetch_array, ...
    http://eusebius.developpez.com/phpmysql-base/#LIV

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut
    alors voila ce que j'ai fait mais toujours aucune mise a jour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql_test = " SELECT access_id FROM track_e_access WHERE access_user_id='" . $uid . "' ORDER BY access_id DESC LIMIT 1";
     
    		 $access_id_ = mysql_query($sql_test);
    		 $access_id_sql = mysql_fetch_array($access_id,0);
     
    $sql_access = " UPDATE track_e_access SET access_date_decon= '" . Date("H.i.s") . "' WHERE access_id = '" . $access_id_sql[0] . "'";
     
    		 $result = mysql_query($sql_access, __FILE__, __LINE__);
    j'ai bien utilisé mysql_fetch_array
    mais niet

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut
    quand je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "num_enreg : ($access_id_sql)";
    aprés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql_test = " SELECT access_id FROM track_e_access WHERE     access_user_id='" . $uid . "' ORDER BY access_id DESC LIMIT 1";
    $access_id_sql= api_sql_query($sql_test, __FILE__,__LINE__);
    j'obtient =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    num_enreg : (Resource id #59)
    ???

    ca veut dire quoi?

  8. #8
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    C'est normal ton sql_query te renvoie une ressource qu'il faut ensuite exploiter avec mysql_fetch_assoc par exemple (on en a déjà parlé au début de ce topic...).

    Il y a embrouille là, au tout début tu disais que $access_id_sql était une ressource, et ensuite tu dis que ça vaut bien ton id...

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut
    ben oui, j'ai fait test sur $uid qui me renvoie bien 3 qui est dans ma bdd bien l'id de connexion
    et test sur access_id_sql qui me renvoie bien une ressource (ce que j'ai dit au debut)

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Par défaut
    ca y est c bon!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql_test = " SELECT access_id FROM track_e_access WHERE access_user_id='" . $uid . "' ORDER BY access_id DESC LIMIT 1";
     
    $access_id= api_sql_query($sql_test, __FILE__,__LINE__);
     
    $access_id_sql = mysql_fetch_array($access_id);
     
    $sql_access = " UPDATE track_e_access SET access_date_decon= '" . Date("H.i.s") . "' WHERE access_id = '" . $access_id_sql[0] . "'";
    merci bcp!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. UPDATE avec le resultat d'un SELECT
    Par aelmalki dans le forum SQL
    Réponses: 9
    Dernier message: 03/03/2010, 16h39
  2. Champ recherche avec resultat dans balise select
    Par Rawone dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/11/2007, 09h19
  3. Requete Update avec Select imbriqué: etrange resultat!
    Par corentone dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/08/2007, 15h05
  4. [ SQL ] Faire un update avec un select imbriqué
    Par zozolh2 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/04/2005, 12h05

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