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 :

pb d'incrémentation de base sql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par défaut pb d'insertion de données dans une table sql
    Bonjour,

    Je rencontre un pb avec mon script:

    j'ai 2 fois le même pseudo et le même nom de club qui s'incrémentent sur mes ligne id1 et id2 de ma base.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $retinfo = mysql_query("SELECT Pseudo,Nom_de_votre_club  FROM inscription WHERE classement='classement_elite'")or die(mysql_error()); 
    while ($donnees=mysql_fetch_array($retinfo)) 
    { 
    $Pseudo1=$donnees['Pseudo'];
    $Nom_de_votre_club1=$donnees['Nom_de_votre_club']; 
    $Pseudo2=$donnees['Pseudo']; 
    $Nom_de_votre_club2=$donnees['Nom_de_votre_club']; 
    echo $Pseudo1."<br /><br />";
    echo $Pseudo2."<br /><br />";
    } 
    mysql_query("UPDATE classement_elite SET Pseudo='$Pseudo1' , Nom_de_votre_club='$Nom_de_votre_club1' WHERE id=1")or die(mysql_error()); 
    mysql_query("UPDATE classement_elite SET Pseudo='$Pseudo2' , Nom_de_votre_club='$Nom_de_votre_club2' WHERE id=2")or die(mysql_error());

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Bonjour,
    ta boucle doit faire 2 tours puisque tu as selectionné 2 pseudos si j'ai bien compris ...
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par défaut
    Et bien en fait, ma requête sql (celle du haut)va chercher les pseudos et noms de clubs ou il y a la "valeur" classement élite dans une table et je veux que celles-ci soit rangées dans une nouvelle table (c'est l'update du bas)

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Par défaut
    Ehh... Essaye comme ça :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $retinfo = mysql_query("SELECT Pseudo,Nom_de_votre_club  FROM inscription WHERE classement='classement_elite'")or die(mysql_error()); 
    while ($donnees=mysql_fetch_array($retinfo)) 
    { 
    $Pseudo=$donnees['Pseudo'];
    $Nom_de_votre_club=$donnees['Nom_de_votre_club']; 
    //$Pseudo2=$donnees['Pseudo']; 
    //$Nom_de_votre_club2=$donnees['Nom_de_votre_club']; 
    mysql_query("UPDATE classement_elite SET Pseudo='$Pseudo' , Nom_de_votre_club='$Nom_de_votre_club' WHERE id=1")or die(mysql_error());
    //echo $Pseudo1."<br /><br />";
    //echo $Pseudo2."<br /><br />";
    } 
     
    //mysql_query("UPDATE classement_elite SET Pseudo='$Pseudo2' , Nom_de_votre_club='$Nom_de_votre_club2' WHERE id=2")or die(mysql_error());

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par défaut
    Citation Envoyé par sachav Voir le message
    Ehh... Essaye comme ça :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $retinfo = mysql_query("SELECT Pseudo,Nom_de_votre_club  FROM inscription WHERE classement='classement_elite'")or die(mysql_error()); 
    while ($donnees=mysql_fetch_array($retinfo)) 
    { 
    $Pseudo=$donnees['Pseudo'];
    $Nom_de_votre_club=$donnees['Nom_de_votre_club']; 
    //$Pseudo2=$donnees['Pseudo']; 
    //$Nom_de_votre_club2=$donnees['Nom_de_votre_club']; 
    mysql_query("UPDATE classement_elite SET Pseudo='$Pseudo' , Nom_de_votre_club='$Nom_de_votre_club' WHERE id=1")or die(mysql_error());
    //echo $Pseudo1."<br /><br />";
    //echo $Pseudo2."<br /><br />";
    } 
     
    //mysql_query("UPDATE classement_elite SET Pseudo='$Pseudo2' , Nom_de_votre_club='$Nom_de_votre_club2' WHERE id=2")or die(mysql_error());

    Ca ne fonctionne pas mieux. j'ai toujours que le dernier pseudo et nom d'équipe d'incrémenté dans la base.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Ça parait plutôt logique ce qui t'arrive.

    Tu update toujours la même ligne à chaque boucle de la requete. Je sais pas trop ce que tu cherches à faire donc difficile de te dire plus mais il est sûr qu'il va falloir revoir un peu la copie

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par défaut
    Citation Envoyé par Petibidon Voir le message
    Ça parait plutôt logique ce qui t'arrive.

    Tu update toujours la même ligne à chaque boucle de la requete. Je sais pas trop ce que tu cherches à faire donc difficile de te dire plus mais il est sûr qu'il va falloir revoir un peu la copie
    Je souhaite "simplement" récupérer tous les pseudos et nom d'équipes qui ont le statut "élite"dans ma première table pour les copier dans une nouvelle table

  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 un INSERT qu'il te faut alors pas un UPDATE.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $retinfo = mysql_query("SELECT Pseudo, Nom_de_votre_club  FROM inscription WHERE classement='classement_elite'")or die(mysql_error()); 
    while ($donnees=mysql_fetch_array($retinfo)) 
    { 
    $Pseudo = $donnees['Pseudo'];
    $Nom_de_votre_club = $donnees['Nom_de_votre_club']; 
    mysql_query("INSERT INTO classement_elite (Pseudo, Nom_de_votre_club) VALUES ('" . $Pseudo . "' , ' . "$Nom_de_votre_club . "')")or die(mysql_error());
    }
    ou un truc dans le genre.


    Au passage incrémenter une table je crois pas que ça veuille dire grand chose... On incrémente une variable (la faire augmenter) mais là ça veut rien dire. Et une autre petite remarque au passage attention aussi aux noms des champs dans ta table parce que Nom_de_votre_club c'est pas vraiment approprié (Genre Nom_club ça aurait été plus simple, le "Votre" a pas grand chose à faire là).

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par défaut
    Citation Envoyé par Amara Voir le message
    C'est un INSERT qu'il te faut alors pas un UPDATE.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $retinfo = mysql_query("SELECT Pseudo, Nom_de_votre_club  FROM inscription WHERE classement='classement_elite'")or die(mysql_error()); 
    while ($donnees=mysql_fetch_array($retinfo)) 
    { 
    $Pseudo = $donnees['Pseudo'];
    $Nom_de_votre_club = $donnees['Nom_de_votre_club']; 
    mysql_query("INSERT INTO classement_elite (Pseudo, Nom_de_votre_club) VALUES ('" . $Pseudo . "' , ' . "$Nom_de_votre_club . "')")or die(mysql_error());
    }
    ou un truc dans le genre.


    Au passage incrémenter une table je crois pas que ça veuille dire grand chose... On incrémente une variable (la faire augmenter) mais là ça veut rien dire. Et une autre petite remarque au passage attention aussi aux noms des champs dans ta table parce que Nom_de_votre_club c'est pas vraiment approprié (Genre Nom_club ça aurait été plus simple, le "Votre" a pas grand chose à faire là).
    Merci de tous ces conseils. Je ne suis pas un expert dans le domaine, mais plutôt un newbeez.
    Je vais modifier mon script dans ce sens.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par défaut
    Bon, et bien voilà. ça ne fonctionne pas. C'est bien la fonction update que je dois utiliser car c'est pour remplacer des pseudo et nom déquipes déjà présentes dans la 2ème table.
    Je suis à cours d'idées

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Par défaut
    Pourriez vous clarifier un peu plus à quoi vous voulez aboutir ?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par défaut
    Citation Envoyé par sachav Voir le message
    Pourriez vous clarifier un peu plus à quoi vous voulez aboutir ?
    Je vais essayer d'exprimer ce que je souhaire faire du mieux possible.

    Je souhaite réaliser un script me permettant de récupérer tous les pseudos et noms d'équipes dans une table qui sont reconnus en tant qu'"élite" et les copier dans une nouvelle table à la place de ceux déjà existants.

    J'espère avoir été assez clair

  13. #13
    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
    Et quels enregistrements de ta deuxième table veux-tu mettre à jour avec les données que tu récupères de ta première table ? Comment fais-tu le lien entre les deux ? A quoi correspondent tes id 1 et 2 dans le bout de code de ton premier post ?
    (c'est la clé du truc quand on aura compris ça ça roulera...).

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par défaut
    Citation Envoyé par Amara Voir le message
    Et quels enregistrements de ta deuxième table veux-tu mettre à jour avec les données que tu récupères de ta première table ? Comment fais-tu le lien entre les deux ? A quoi correspondent tes id 1 et 2 dans le bout de code de ton premier post ?
    (c'est la clé du truc quand on aura compris ça ça roulera...).
    Alors, je veux mettre à jour dans ma 2ème table les champs pseudo et nom_de_votre_club.
    Dans ma version définitive de script, il n'y aura que 16 lignes à mettre à jour. Pour mon test, je n'en ai fait que 2.
    Dans ma première table, on ne pourra trouver que 16 joueurs qui seront en "élite". En faisant ma première requête, je souhaite récupérer les 16 joueurs qui sont classés en tant qu'"élite" dans ma table "inscription" dans un tableau(fetch_array), ce que j'arrive à faire car si je fais un echo à ce moment là, j'ai bien ma liste de pseudos et nom d'équipe. Par contre, je n'arrive pas à remplacer les pseudos et nom d'équipe présents dans ma 2ème table "classement_elite" par ceux que j'ai récupéré dans ma première table.
    En fait si. Je remplace bien les équipes existantes mais mon script me remonte 16 fois le même pseudo et 16 fois le même nom d'équipe (il s'agit du dernier listé de ma 1ère table)
    Les id me servent à dire où je souhaite que les données remontées soit stockées.

  15. #15
    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
    Aucune donnée ne fait le lien entre les tables inscription et classement_elite ?
    Là j'ai l'impression qu'en vidant la table classement_elite et en insérant les noms des inscriptions élite ça reviendrait au même... j'ai peut-être mal posé ma question, mais quand tu prends un enregistrement qui vient de la table inscription, sur quoi te bases-tu pour savoir quelle est la ligne de la table classement_elite qui doit être mise à jour avec ces données ?

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par défaut
    Citation Envoyé par Amara Voir le message
    Aucune donnée ne fait le lien entre les tables inscription et classement_elite ?
    Là j'ai l'impression qu'en vidant la table classement_elite et en insérant les noms des inscriptions élite ça reviendrait au même... j'ai peut-être mal posé ma question, mais quand tu prends un enregistrement qui vient de la table inscription, sur quoi te bases-tu pour savoir quelle est la ligne de la table classement_elite qui doit être mise à jour avec ces données ?
    Il n'y a aucune importance pour moi de savoir qui de la table inscription va être 1er ou 2ème ou autre dans la table classement_elite.
    Tout ce que je veux faire c'est prendre la liste des 16 joueurs récupérés dans la table inscription et la mettre à la place de celle existante dans la table classement_elite.

  17. #17
    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 lumycaan Voir le message
    Il n'y a aucune importance pour moi de savoir qui de la table inscription va être 1er ou 2ème ou autre dans la table classement_elite.
    Tout ce que je veux faire c'est prendre la liste des 16 joueurs récupérés dans la table inscription et la mettre à la place de celle existante dans la table classement_elite.
    Bon bah dans ce cas il faut d'abord vider la table puis la réalimenter avec les données récupérées de la table inscription, il n'y a aucun intérêt à faire d'update vu que tu ne conserves aucune donnée.

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Par défaut
    Ca y est, ça fonctionne!!!!!!!!

    Merci beaucoup. Je vide la table classement_elite et j'utilise insert into à la place d' update.

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

Discussions similaires

  1. [Etats & Requêtes] Récupérer le dernier auto incrément sur base SQL Server
    Par droliprane dans le forum WinDev
    Réponses: 6
    Dernier message: 25/05/2013, 16h16
  2. attaquer base sql server avec easyphp sous windows
    Par jarod71 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/12/2003, 14h17
  3. Requête modification base SQL
    Par jacma dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/11/2003, 13h49
  4. Comment se connecter à une base SQL server
    Par zapia dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 22/10/2003, 17h39
  5. [Rave][Delphi][Base SQL] besoin d'informations
    Par David Altech dans le forum Rave
    Réponses: 1
    Dernier message: 30/07/2003, 13h59

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