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 :

eurreur requete mise a jours aide


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudient ingénieur système d'information mobile
    Inscrit en
    Mars 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudient ingénieur système d'information mobile

    Informations forums :
    Inscription : Mars 2007
    Messages : 131
    Par défaut eurreur requete mise a jours aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
     
     
    $db = mysql_connect('localhost','root');  
    mysql_select_db('foot',$db); 
     
    $xxx=$_POST['xxx'];
    $yyy=$_POST['yyy'];
     
    $x="UPDATE match_live SET sc1_eq1='$xxx',sc2_eq2='$yyy' WHERE id_match=(select MAX(id_match) from match_live)";
    $resultat=mysql_query($x) or die ('Erreur '.$requete.' '.mysql_error());
     
    header ('location: admin.php'); 
     
     
    ?>

    je veut modifier la derniere colonne de la table match_live quand j'ajoute WHERE id_match=(select MAX(id_match) from match_live) cette eurreur apparait : Erreur You can't specify target table 'match_live' for update in FROM clause

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Par défaut
    à la place de ton = essaie le mot clef IN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where id_match IN (SELECT ...

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudient ingénieur système d'information mobile
    Inscrit en
    Mars 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudient ingénieur système d'information mobile

    Informations forums :
    Inscription : Mars 2007
    Messages : 131
    Par défaut
    toujours l'eurreur Erreur You can't specify target table 'match_live' for update in FROM clause

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudient ingénieur système d'information mobile
    Inscrit en
    Mars 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudient ingénieur système d'information mobile

    Informations forums :
    Inscription : Mars 2007
    Messages : 131
    Par défaut
    enfin trouve une solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?php
     
     
    $db = mysql_connect('localhost','root');  
    mysql_select_db('foot',$db); 
     
    $xxx=$_POST['xxx'];
    $yyy=$_POST['yyy'];
     
    $max_id=mysql_query('select MAX(id_match) from match_live');
    $row_maxid=mysql_fetch_array($max_id);
     
    $x="UPDATE match_live SET sc1_eq1='$xxx',sc2_eq2='$yyy' WHERE id_match = '$row_maxid[0]'";
    $resultat=mysql_query($x) or die ('Erreur '.$requete.' '.mysql_error());
     
    header ('location: admin.php'); 
     
     
    ?>

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Je m'interroge sur la façon dont tu procède, car si on y regarde bien, il peu avoir des phénomènes pervers, et donc déboucher sur des erreurs.

    Tu effectue une mise à jour sur 2 champ (sc1_eq1, sc2_eq2) en en te basant sur la plus grande valeur de l'ID "id_match" de cette table "match_live".
    Théoriquement, ça devrait correspondre à la dernière insertion (théoriquement).

    Mais que ce passe t-il si un nouvel enregistrement à lieu juste avant cette mise à jour ?
    Est tu certain dans ce cas là que les 2 valeurs transmises (saisies par un utilisateur) au départ vont correspondre à L'ID prévu ?
    Théoriquement non, on a plus affaire au même enregistrement, mais à celui d'avant.


    A mon sens, il serait mieux de transmettre l'ID correspondant aux 2 valeurs qu'aura saisies l'utilisateur dans le formulaire, et faire un UPDATE sur cet ID.


    Mise à part ça, ton problème était à mon sens qu'il n'est pas permis d'utiliser 2 fois la même table dans un UDPATE.
    Pour le résoudre, il faudrait à mon sens mettre un alias :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE match_live
    SET sc1_eq1 = '$xxx', sc2_eq2 = '$yyy'
    WHERE id_match = (
        SELECT MAX(m2.id_match) FROM match_live AS m2
    )

Discussions similaires

  1. pb requete mise a jour entre 2 tables
    Par lolothom dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 08/07/2007, 17h29
  2. Requete Mise A Jour UPDATE
    Par Teddy63 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/05/2007, 09h15
  3. [Requete]Mise a jour d'un champ
    Par le_gueux90 dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 11/05/2007, 11h52
  4. Est-ce Cela Peut Fonctionner Requetes Mise A Jour
    Par dauphin34000 dans le forum Oracle
    Réponses: 22
    Dernier message: 28/04/2006, 13h08
  5. Probleme avec une requete mise a jour
    Par mael94420 dans le forum ASP
    Réponses: 2
    Dernier message: 08/03/2006, 20h56

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