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 :

Remplacement id par nom [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 148
    Points : 54
    Points
    54
    Par défaut Remplacement id par nom
    Bonjour à tous !

    Je reviens vous voir pour vous posez une petite question :

    Je suis en train de créer un site de stats !

    J'ai déjà tout le système pour que les données soit placés dans la base SQL, et j'ai créé un tableau avec les données joueurs : (les 10 premiers joueurs dans l'ordre)

    Cette base contient 2 tables : alliances et players

    Voici le 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <html>
    <head>
    <title>GrepolisToolkit Utilities ALPHA</title>
     <meta charset="utf-8" />
      <link rel="stylesheet" href="http://staff.grepolistoolkit.fr.nf/style.css" />
      </head>
    <body>
    <p>
         <img src="http://staff.grepolistoolkit.fr.nf/images/banfin.png" />
    </p>
     
    <?
    // information pour la connection à le DB
    XXXX
     
    // connection à la DB
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
    // requête SQL qui compte le nombre total d'enregistrement dans la table et qui
    //récupère tous les enregistrements
    $select = 'SELECT id, name, alliance_id, points, rank, towns FROM players ORDER BY rank ASC limit 0,10';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
     
        // debut du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
            echo '<td bgcolor="#669999"><b><u>Classement</u></b></td>' ;
            echo '<td bgcolor="#669999"><b><u>Pseudo</u></b></td>';
          echo '<td bgcolor="#669999"><b><u>Alliance</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>Points</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>Villes</u></b></td>';
          echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
            echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row["rank"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["name"].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row["alliance_id"].'</td>';
          echo '<td bgcolor="#CCCCCC">'.$row["points"].'</td>';
    	  echo '<td bgcolor="#CCCCCC">'.$row["towns"].'</td>';
          echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
    // on libère le résultat
    mysql_free_result($result);
     
     
    ?>
    </body>
    </html>
    Je voudrais en fait que l'id de l'alliance qui s'affiche dans mon tableau soit remplacé par son nom (contenu dans la table alliance) !

    En gros, qu'il prenne en compte l'id, recherche dans la base alliance et l'affiche !!

    Merci d'avance !!

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762

  3. #3
    Membre habitué Avatar de rinuom99
    Étudiant
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 171
    Points
    171
    Par défaut
    une simple jointure entre les deux tables fait l'affaire.
    Si tu peux voir détruit l'ouvrage de ta vie.
    Et sans dire un seul mot te mettre à rebâtir,
    Tu seras un Homme, mon fils.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 148
    Points : 54
    Points
    54
    Par défaut
    Merci pour votre réponse ! Quelqu'un pourrait-t-il me donner un exemple dans mon cas ?

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT p.id AS player_id, 
    	p.name AS player_name, 
    	a.id AS alliance_id, 
    	a.name AS alliance_name
    	p.points, 
    	p.rank, 
    	p.towns 
    FROM players p
    INNER JOIN alliance a ON a.id = p.alliance_id 
    ORDER BY rank ASC 
    LIMIT 0,10
    Tu indentes ton code HTML et/ou PHP alors prend la bonne habitude d'indenter aussi tes requêtes, elles sont ainsi plus lisibles.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 148
    Points : 54
    Points
    54
    Par défaut
    Sauf erreur de ma part, il me donne cette erreur là :

    Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'p.points, p.rank, p.towns FROM players p INNER JOIN alliance a ON a.id = p.' at line 5

  7. #7
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par MRJBGO Voir le message
    Sauf erreur de ma part, il me donne cette erreur là :
    Il manque une virgule, tu aurais dû le remarquer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT p.id AS player_id, 
    	p.name AS player_name, 
    	a.id AS alliance_id, 
    	a.name AS alliance_name,
    	p.points, 
    	p.rank, 
    	p.towns 
    FROM players p
    INNER JOIN alliance a ON (a.id = p.alliance_id)
    ORDER BY rank ASC 
    LIMIT 0,10

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 148
    Points : 54
    Points
    54
    Par défaut
    Merci, je n'avais pas remarqué

    après quelques modifications, sa marche !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $select = 'SELECT p.id AS id, 
    	p.name AS name, 
    	a.id AS alliance_id, 
    	a.alliance_name AS alliance_name,
    	p.points, 
    	p.rank, 
    	p.towns 
    FROM players p
    INNER JOIN alliances a ON (a.id = p.alliance_id)
    ORDER BY rank ASC 
    LIMIT 0,10';
    Par contre, comment faire pour mettre plusieurs FROM et INNER JOIN ?

    je voudrais pour une autre page faire un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $select = 'SELECT c.town_id AS town_id,
    	c.time,
    	p.name AS name,
    	p.name AS new_player_id, 
    	c.old_player_id,
    	a.alliance_name AS alliance_name,
    	a.id AS new_ally_id,
    	c.old_ally_id, 
    	c.town_points
    FROM conquers c
    FROM players p
    INNER JOIN alliances a ON (a.id = c.alliance_id) 
    INNER JOIN players p ON (p.id = c.player_id)
    ORDER BY time ASC';
    Mais y a une erreur ...


    J'en profite pour vous posez une question encodage :

    %C3%A9 = é
    + = espace

    Quel bout de code pour changer tout ça ?

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT c.town_id AS town_id,
    	c.time,
    	p.name AS name,
    	p.name AS new_player_id, 
    	c.old_player_id,
    	a.alliance_name AS alliance_name,
    	a.id AS new_ally_id,
    	c.old_ally_id, 
    	c.town_points
    FROM conquers c
    INNER JOIN players p ON p.id = c.player_id
    INNER JOIN alliances a ON a.id = c.alliance_id 
    ORDER BY time ASC
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 50
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par MRJBGO Voir le message
    J'en profite pour vous posez une question encodage :

    %C3%A9 = é
    + = espace

    Quel bout de code pour changer tout ça ?
    C'est marqué là ou tu vas chercher tes données:

    Citation Envoyé par Grepolis
    Les fichiers sont disponibles au format .txt.gz au nombre de 11 au total. Chaque fichier consiste en un nombre arbitraire de lignes séparées par des virgules. Les données sont codées au format PHP urlencode(), ce qui signifie par exemple qu'une virgule est exprimée par %2C.
    tu utilises donc urldecode() pour retranscrire.

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 148
    Points : 54
    Points
    54
    Par défaut
    Merci ! Je l'avais trouvé entre 2

    Lle site avance ! Maintenant, faut que je trouve comment faire les pages perso ... avec les liens suivant l'id

    En fait, que "une page modèle" affiche les infos selon l'id

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

Discussions similaires

  1. [Batch] Remplacer espaces par underscores dans noms de fichiers
    Par Ysae68 dans le forum Scripts/Batch
    Réponses: 13
    Dernier message: 28/08/2017, 16h56
  2. Remplacer localhost par le nom de domaine
    Par onesat dans le forum Apache
    Réponses: 1
    Dernier message: 08/03/2012, 09h25
  3. Email en MAPI, remplacer lien FILE:// par nom significatif
    Par DEMMAR dans le forum ODS et reporting
    Réponses: 6
    Dernier message: 12/07/2011, 17h15
  4. [ASP] include remplacer chemin par variable
    Par damn dans le forum ASP
    Réponses: 3
    Dernier message: 01/10/2004, 15h27
  5. Delphi7 winxp pro renvoyer un TLabel connu par nom
    Par regis1_1 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/06/2003, 11h09

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