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 :

Ma requête php n'effectue pas la modification


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut Ma requête php n'effectue pas la modification
    bonjour,

    J'ai un match entre 2 joueurs
    Celui qui gagne doit avoir son nom d'insérer dans la table tournoi en tant que vainqueur.
    Mais quand je fais fonctionner mon programme rien ne s'insère. Voici mon bout de code.
    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
    if($score >= $score2)
    	{
    	$req5 = "insert into tour_suivant values ('', '$joueur1');";
    	$res5=mysql_query($req5);
    	$req6 ="update qualification set tour='elimine' where name='$joueur2';";
    	$res6=mysql_query($req6);
    	$req10 = "update tournoi set tournoi.vainqueur=$joueur1 where nom_tournoi=(select nom_tournoi from tournoi where vainqueur='' order by date_tournoi  limit 1)";
    	$res10=mysql_query($req10);	
    	}
    	else
    	{
    	$req5 = "insert into tour_suivant values ('', '$joueur2');";
    	$res5=mysql_query($req5);
    	$req6 ="update qualification set tour='elimine' where name='$joueur1';";
    	$res6=mysql_query($req6);
    	$req10 = "update tournoi set tournoi.vainqueur=$joueur2 where nom_tournoi=(select nom_tournoi from tournoi where vainqueur='' order by date_tournoi  limit 1);";
    	$res10=mysql_query($req10);	
    	}

  2. #2
    Membre expérimenté
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Par défaut
    sle leloup , je te prie de faire un echo de tes requetes pour savoir ce qu'elle renvoie.

  3. #3
    Membre émérite
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Par défaut
    Tu peux rajouter des or die() pour afficher les problèmes de requetes!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res5 = mysql_query($req5) or die(mysql_error());
    Pour les requetes de type INSERT ou UPDATE, tu n'es pas obligé de récuperer le résultat, vu que tu ne l'utilises pas après.
    Le résultat contiendra le nombre d'enregistrement affecté.

  4. #4
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    quand je remplace le $joueur par un nom il me met çà :
    You can't specify target table 'tournoi' for update in FROM clause

  5. #5
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    La syntaxe correcte de INSERT est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     INSERT INTO tbl_name (champ1, champ2,... champn) VALUES (value1, value2,... valuen)

  6. #6
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    déjà, simplifie ton code, tu répête plein de choses inutilement ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if($score >= $score2) {
    	$nom_vainqueur = $joueur1;
    	$nom_perdant = $joueur2;
    } else {
    	$nom_vainqueur = $joueur2;
    	$nom_perdant = $joueur1;
    }
     
    $req5 = "insert into tour_suivant values ('', '".$nom_vainqueur."')"; 
    $res5=mysql_query($req5); 
    $req6 ="update qualification set tour='elimine' where name='".$nom_perdant."'";
    $res6=mysql_query($req6); 
    $req10 = "update tournoi set tournoi.vainqueur=".$nom_vainqueur." where nom_tournoi=(select nom_tournoi from tournoi where vainqueur='' order by date_tournoi  limit 1)"; 
    $res10=mysql_query($req10);
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  7. #7
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    oui mais là je parle du update de $req10

  8. #8
    Membre émérite
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Par défaut
    Tu n'as pas besoin de repeter tournoir.vainqueur
    Mets juste vainqueur
    De plus, il vaut mieux entourer les insertions par des guillemets.

  9. #9
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    çà ne change pas le problème, c'est à dire que l'insertion ne se fait pas

  10. #10
    Membre émérite
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Par défaut
    J'comprends pas là ?!
    D'un coup, tu dis que c'est l'update, puis après l'insert ?!

    Et qu'est-ce qui ne marche pas ? L'erreur ?

  11. #11
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    $req5 = insert into tour_suivant values ('', 'Roger Federer')
    $req6 = update qualification set tour='elimine' where name='Rafael Nadal'
    $req10 = update tournoi set tournoi.vainqueur=Roger Federer where nom_tournoi=(select nom_tournoi from tournoi where vainqueur='' order by date_tournoi limit 1)

  12. #12
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req10 = "update tournoi set tournoi.vainqueur='".$nom_vainqueur."'....
    avec des quotes, ca ira déjà un peu moins mal. Pis sinon :

    ...where vainqueur='' ...
    et dans le cas où tu as plusieurs tournois non finis, tu fait quoi ?
    passe par des Id, ce sera plus simple, et pas de risque d'erreurs...
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  13. #13
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    comment tu fais alors pour éviter çà ?

Discussions similaires

  1. [MySQL] Requête de mise à jour qui n'effectue pas la modif
    Par Zhebulon dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 23/07/2009, 14h54
  2. [PHP-SQL] Effectuer une tâche avec plus de 3000 requêtes
    Par kevinf dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 17/12/2007, 08h34
  3. [MySQL] Problème PHP/Mysql mon php n'exécute pas la requête
    Par matew dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/04/2007, 13h01
  4. Ma requête n'effectue pas la modification
    Par leloup84 dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/03/2006, 16h43
  5. [php-mysql] requête qui ne marche pas....
    Par sanosuke85 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/01/2006, 17h18

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