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 :

Affichage des données d'une base [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut Affichage des données d'une base
    Voilà où j'en suis :
    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
    include("config.php");
    $req2 ="select nom from qualification";
    $res2=mysql_query($req2);
    $i = 0;
    while ($resultat2= mysql_fetch_assoc($res2))
    {
    $i++;
    $req="select service, coup_droit, revers, puissance, endurance from joueur, qualification where joueur.nom='".$resultat2['nom']."'";
    $res=mysql_query($req);
    $resultat=mysql_fetch_row($res);
    $score=$resultat[0]+$resultat[1]+$resultat[2]+$resultat[3]+$resultat[4];
    echo $resultat2['nom'];
    if($i%2 == 0)
    {
    echo "<p />";
    $diff=$tot-$score;
    $req3="select * from resultats where valeur='$diff'";
    $res3=mysql_query($req3);
    $resultat3=mysql_fetch_row($res3);
    }
    else
     
    $tot=$score;
    echo "<br />";
     
    }
    Je n'ai plus qu'un petit problème l'affichage.
    Qui doit se présenter comme ceci :
    joueur1 $resultat3[1] $resultat3[3] $resultat3[5] $resultat3[7] $resultat3[9]
    joueur2 $resultat3[2] $resultat3[4] $resultat3[6] $resultat3[8] $resultat3[10]

    joueur3 $resultat3[1] $resultat3[3] $resultat3[5] $resultat3[7] $resultat3[9]
    joueur4 $resultat3[2] $resultat3[4] $resultat3[6] $resultat3[8] $resultat3[10]
    .
    .
    .
    Et ainsi de suite. Si quelqu'un à une idée.

  2. #2
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Quel est le problème au juste?

  3. #3
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    je veux afficher sous cette forme :
    dans un tableau à 2 lignes et donc plusieurs colonnes :
    joueur1 resultats... comme expliquer ci-dessus
    joueur2

    Ce script correspond à l'annonce d'un résultat d'un match de tennis

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    Déja je trouve que ton traitement est super lourd
    Tu fais une requête pour chaque nom de joueur et pleins d'autres pour chaques noms
    Je pense qu'ne une seule requête tu peux le faire
    En récupérant le nom du joueur, en faisant une jointure entre tes 2 tables,et en faisant un group by sur ton nom de joueur
    Sinon pour ton affichage il suffit de créer un tableau dans lequel tu crée une ligne à chaque enregistrement et où tu insères chaque résultat dans une case

  5. #5
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    non justement je n'ai pas créer une requête pour chaque joueur.
    Voilà ce à quoi correspond le début de mon code
    je vais réexpliquer le plus clairement possible.
    une table joueur avec leur nom et leur caractéristiques comme vitesse, service ils ont tous une valeur de 1 à 20.
    une table qualification où sont inséré les joueurs participants au tournoi. Un joueur par ligne et les match se font de cette façon :
    joueur1 / joueur2
    joueur3 / joueur4...
    une table résultat avec une valeur et un score pour chaque joueur à chaque manche, exemple :
    valeur : 4
    joueur1manche1 : 6
    joueur2manche1 : 3
    joueur1manche2 : 6
    joueur2manche2 : 4
    Voilà la structure de mes 3 tables dont je vais me servir.
    Voilà l'idée général, je veux que mon code calcul les caractéristiques du joueur1 : vitesse + service = 20
    joueur2 : vitesse + service = 16
    calcul de la différence 20-16 = 4
    je vais chercher dans la table résultat ce qui correspond à 4 (voir ci-dessus):
    On a donc joueur1 6 6
    joueur2 3 4
    c'est l'affichage que je veux pour mon résultat.
    Voilà le principé général.

    Je serais le faire avec plusieurs requete.
    Maintenant je veux savoir s'il y a un moyen rapide en quelques requêtes, pour que je puisse faire toute la démarche vu ci-dessus, pour chaque match.
    joueur1
    joueur2

    joueur3
    joueur4...

  6. #6
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Citation Envoyé par leloup84
    je veux afficher sous cette forme :
    dans un tableau à 2 lignes et donc plusieurs colonnes :
    joueur1 resultats... comme expliquer ci-dessus
    joueur2

    Ce script correspond à l'annonce d'un résultat d'un match de tennis
    Oui, ça j'ai bien compris mais quel est ton problème? Qu'est ce qui t'empêche de faire cet affichage?

  7. #7
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    je ne vois d'après le code que j'ai déjà écrit je ne vois pas où insérer ces lignes d'affichage

  8. #8
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Ah, ben tu peux le mettre en dessous puisque tu as déjà tout dans tes différents tableaux "resultat" et dans score.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    il vient de où ton $tot ?

  10. #10
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    $tot est la même chose que $score
    $tot pour joueur1, $score pour joueur2
    ce qui me permet de trouvé $diff

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    En faisant cette requête tu obtiendrais me même résultat
    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
    $req = "select joueur.nom,service,coup_droit,revers,puissance,endurance from joueur,qualification where joueur.nom = qualification.nom"
    $res = mysql_query($req);
     
    print("<table>");
    i = 1;
     
    while($resultat = mysql_fetch_row($res))
    {
     
    if($i%2 == 0) 
    { 
      $joueur2 = $resultat[0];
      $score2=$resultat[1]+$resultat[2]+$resultat[3]+$resultat[4]+$resultat[5]; 
      $diff=$score-$score2; 
      $score = 0;
      $score2 = 0;
      $req3="select * from resultats where valeur='$diff'"; 
      $res3=mysql_query($req3); 
      $resultat3=mysql_fetch_row($res3);
     
      <tr>
          <td>$joueur1<td>
          <td>$resultat3[1]</td>
          <td>$resultat3[3]</td>
          <td>$resultat3[5]</td>
          <td>$resultat3[7]</td>
          <td>$resultat3[9]</td>
       </tr>
       <tr>
          <td>$joueur2<td>
          <td>$resultat3[2]</td>
          <td>$resultat3[4]</td>
          <td>$resultat3[6]</td>
          <td>$resultat3[8]</td>
          <td>$resultat3[10]</td>
       </tr>
        <tr></tr>
     
     
    }else{
    $score=$resultat[1]+$resultat[2]+$resultat[3]+$resultat[4]+$resultat[5]; 
    $joueur1 = $resultat[0];
    }
     
    i += 1;
    }

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    j'ai oublié de fermer mon table

    tu rajoute un </table> tout à la fin

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    En faisant cette requête tu obtiendrais me même résultat

    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
     
    $req = "select joueur.nom,service,coup_droit,revers,puissance,endurance from joueur,qualification where joueur.nom = qualification.nom" 
    $res = mysql_query($req); 
     
    print("<table>"); 
    i = 1; 
     
    while($resultat = mysql_fetch_row($res)) 
    { 
     
      if($i%2 == 0) 
      { 
        $joueur2 = $resultat[0]; 
        $score2=$resultat[1]+$resultat[2]+$resultat[3]+$resultat[4]+$resultat [5]; 
        $diff=$score-$score2; 
        $score = 0; 
        $score2 = 0; 
        $req3="select * from resultats where valeur='$diff'"; 
        $res3=mysql_query($req3); 
        $resultat3=mysql_fetch_row($res3); 
     
        print("
        <tr> 
          <td>$joueur1<td> 
          <td>$resultat3[1]</td> 
          <td>$resultat3[3]</td> 
          <td>$resultat3[5]</td> 
          <td>$resultat3[7]</td> 
          <td>$resultat3[9]</td> 
        </tr> 
        <tr> 
          <td>$joueur2<td> 
          <td>$resultat3[2]</td> 
          <td>$resultat3[4]</td> 
          <td>$resultat3[6]</td> 
          <td>$resultat3[8]</td> 
          <td>$resultat3[10]</td> 
        </tr> 
        <tr></tr> 
      ");
     
      }else{ 
        $score=$resultat[1]+$resultat[2]+$resultat[3]+$resultat[4]+$resultat[5]; 
        $joueur1 = $resultat[0]; 
    } 
     
    i += 1; 
    }

  14. #14
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    ok
    mais pour joueur3 contre joueur4, joueur5 contre joueur6... çà fera la même chose ?
    Où il faut refaire une requête différente pour l'affichage pour chaque match

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    Sa sera la même chose
    Le nom de joueur 3 sera dans la variable joueur 1
    et celui de joueur 4 sera dans la variabel joueur 2
    pareil pour les résultats

  16. #16
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    ok tu code fonctionne, les résultats s'affichent nikel, le seul problème c'est qu'il les affiche 8 fois... ?

  17. #17
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    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
    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
    <table>
    <form name="open_australie7" method="post" action="open_australie6.php">
    <?
    	include("config.php");
    	$req2 ="select nom from qualification";
       $res2=mysql_query($req2);
       $i = 0;
       while ($resultat2= mysql_fetch_assoc($res2))
       {
            $req = "select joueur.nom,service,coup_droit,revers,puissance,endurance from joueur,qualification where joueur.nom = qualification.nom";
    	$res=mysql_query($req);
     
    print("<table>");
    $i = 1;
     
    while($resultat = mysql_fetch_row($res))
    {
     
      if($i%2 == 0)
      {
        $joueur2 = $resultat[0];
        $score2=$resultat[1]+$resultat[2]+$resultat[3]+$resultat[4]+$resultat [5];
        $diff=$score-$score2;
        $score = 0;
        $score2 = 0;
        $req3="select * from resultats where valeur='$diff'";
        $res3=mysql_query($req3);
        $resultat3=mysql_fetch_row($res3);
     
        print("
        <tr>
          <td>$joueur1<td>
          <td>$resultat3[1]</td>
          <td>$resultat3[3]</td>
          <td>$resultat3[5]</td>
          <td>$resultat3[7]</td>
          <td>$resultat3[9]</td>
        </tr>
        <tr>
          <td>$joueur2<td>
          <td>$resultat3[2]</td>
          <td>$resultat3[4]</td>
          <td>$resultat3[6]</td>
          <td>$resultat3[8]</td>
          <td>$resultat3[10]</td>
        </tr>
        <tr></tr>
      ");
     
      }else{
        $score=$resultat[1]+$resultat[2]+$resultat[3]+$resultat[4]+$resultat[5];
        $joueur1 = $resultat[0];
    }
     
    $i += 1;
    }print("</table>");

  18. #18
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    948
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = "select distinct joueur.nom,service,coup_droit,revers,puissance,endurance from joueur,qualification where joueur.nom = qualification.nom";
    t'a essayé avec distinct?

  19. #19
    Membre actif
    Inscrit en
    Janvier 2006
    Messages
    1 218
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 218
    Points : 257
    Points
    257
    Par défaut
    même chose...çà vient pas de çà

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    Tu pe me dire ce que tu as dans ta table résultat??

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/11/2010, 17h06
  2. [C#] Affichage des données d'une base de données à travers un Datagrid
    Par Me,Myself and I dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/02/2007, 16h38
  3. [MySQL] Problème avec affichage des données d'une base MySQL
    Par leclone dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 27/12/2006, 12h40
  4. [Tableaux] affichage des données d'une base
    Par Nickwell dans le forum Langage
    Réponses: 1
    Dernier message: 29/09/2006, 17h14

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