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 :

Problème avec un update


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 Problème avec un update
    Bonjour,

    J’ai créé une 1ère requête qui récupère les attributs de chaque joueur (8 joueurs) et qui en fait la somme.
    Je voudrais maintenant que cette somme des attributs pour chaque joueur soit mis dans une table qui contient déjà leur nom.
    J’ai donc une table avec les attributs des joueurs celle qui me permet de faire la somme.
    Puis j’ai une table avec leur nom déjà la table masters. J’ai créer une nouvelle colonne et je voudrais dans cette colonne que vienne s’insérer à l’aide d’un update donc la somme pour chacun des joueurs.
    Voilà la requête qui fait la somme (celle là marche) et l’update que j’essaie de faire mais j’ai ce message d’erreur «Parse error: parse error, unexpected T_WHILE» :
    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
     
    $req="select joueurcaract.lib_nomcaract, sum(joueurcaract.valeur)-nb_tournoi
    from joueurcaract, classement, masters, tournoi, tournoicaract
    where classement.nom_classement=joueurcaract.lib_nomcaract
    and joueurcaract.lib_joueurcaract=tournoicaract.lib_tournoicaract
    and tournoicaract.nom_tournoicaract=tournoi.nom_tournoi
    and tournoi.nom_tournoi=masters.no_tournoi
    and masters.name_j=joueurcaract.lib_nomcaract
    group by joueurcaract.lib_nomcaract
    order by rang;";
     
    $res=mysql_query($req)		
    while($row=mysql_fetch_row($res))
    {
    	mysql_query("update masters, classement set tot_caract=$row[1] where masters.name_j=classement.nom_classement and rang=".$row['classement.rang']);
    }
    Merci d’avance

  2. #2
    Membre chevronné Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Par défaut
    tu devrais mettre des alias a tes noms de tables quand tu fais des jointures

    mysql_query("update masters m, classement c set ??.tot_caract=".$row[1]." where m.name_j=c.nom_classement and ??.rang=".$row['c.rang']);

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $res=mysql_query($req)		
    while($row=mysql_fetch_row($res))
    {
    mysql_query("update masters m, classement c set m.tot_caract='.$row[1].' where m.name_j=c.nom_classement and c.rang=".$row['c.rang']);
    }
    Voilà ma ligne de code modifié mais j'ai toujours ce message d'erreur "Parse error: parse error, unexpected T_WHILE"

  4. #4
    Membre chevronné Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Par défaut
    $res=mysql_query($req) ;
    while($row=mysql_fetch_row($res))
    {
    mysql_query("update masters m, classement c set m.tot_caract='.$row[1].' where m.name_j=c.nom_classement and c.rang=".$row['c.rang']);
    }
    point virgule !
    sinon ton erreur vient d'une erreur de syntaxe avec WHILE

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    J'ai bien mis le point virgule donc il n'y a plus le message d'erreur par contre le update ne se fait pas ma colonne tot_caract reste à 0 pour chaque joueur.
    Pour quelle raison ?

  6. #6
    Membre chevronné Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Par défaut
    Citation Envoyé par leloup84
    J'ai bien mis le point virgule donc il n'y a plus le message d'erreur par contre le update ne se fait pas ma colonne tot_caract reste à 0 pour chaque joueur.
    Pour quelle raison ?
    deja il y a un probleme avec la jointure que tu fais.
    Normalement, on joint en fonction d'un ID et non d'un nom... car il peut changer...

    Apres j'ai besoin de ta premiere requete :
    $res=mysql_query($req) ;

    car tu fais dans ton update : m.tot_caract='.$row[1].'
    et je ne pense pas que tu aies un champs qui s'appelle "1" !
    Donc le probleme vient de la

Discussions similaires

  1. [MySQL] problèmes avec mes Update
    Par carlos587261 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/05/2007, 08h02
  2. [MySQL] problème avec un update
    Par soork dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/04/2007, 12h22
  3. Problème avec un update et un champs
    Par kornmuse90 dans le forum Requêtes
    Réponses: 3
    Dernier message: 27/03/2006, 15h55
  4. [VB6] Problème avec requête Update
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/02/2006, 03h40

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