Auteur Sujet: Lister Une Base  (Lu 7938 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne jppj

  • Habitué
  • **
  • Messages: 168
    • Holonet-System
Lister Une Base
« le: 01 avril 2005 à 22:53:30 »
Bon, une explication la plus clair et simple possible :

J'ai une base SQL ayant une table utilisateurs, on trouve dans cetta table (utile pour le code) :
- pseudo
- equipe
- url

Mon but est de lister les joueurs dans un tableau celon leur équipe comme :


Donc dans la base de donnée, dans les enregistements pour équipe il est donc indiqué dedans :
equipe 1
equipe 2
equipe 3
equipe 4

J'arrive sans problème à afficher pour une équipe en m'aidant du code de phpdebutant :

<?php
// on se connecte à MySQL
$db = mysql_connect('cl2-sql1', 'xxx', 'xxx');

// on sélectionne la base
mysql_select_db('xxx',$db);

// on crée la requête SQL
$sql="SELECT pseudo, equipe, url FROM utilisateurs WHERE equipe = equipe 1' ";

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
    {
    // on affiche les informations de l'enregistrement en cours
echo '<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a</div> ';
    }

// on ferme la connexion à mysql
mysql_close();
?>

Mais bon, je m'imagine mal remettre 4 fois ce code, est ce que vous pouvez m'indiquez comment je peux faire s'il vous plaît ?  :(  

Hors ligne NICO100

  • Débutant
  • *
  • Messages: 96
    • http://www.bestiaire.org
Lister Une Base
« Réponse #1 le: 02 avril 2005 à 01:04:25 »
<?php
// on se connecte à MySQL
$db = mysql_connect('cl2-sql1', 'xxx', 'xxx');

// on sélectionne la base
mysql_select_db('xxx',$db);

// on crée la requête SQL  sans preciser l'equipe mais en l'ordonnant
$sql="SELECT pseudo, equipe, url FROM utilisateurs ORDER By equipe ASC";

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

//On lit la premiere entrée
$data = mysql_fetch_assoc($req);
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data)
{
    //On vient de changer d'equipe (ou la premiere)
    $eq = $data['equipe'];
    echo "Equipe $eq<br>";
    //Boucle sur l'equipe $eq
    while($eq==$data['equipe'])
    {
    // on affiche les informations de l'enregistrement en cours
    echo '<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a</div> ';
         //joueur suivant
         $data = mysql_fetch_assoc($req);
    }
}

// on ferme la connexion à mysql
mysql_close();
?>

Sans tests!
Le jeu du Bestiaire
http://jeu.bestiaire.org/

Hors ligne jppj

  • Habitué
  • **
  • Messages: 168
    • Holonet-System
Lister Une Base
« Réponse #2 le: 02 avril 2005 à 10:04:38 »
Ce que tu ùe donnes comme code fonctionne impeccablement, mais je ne vois pas comment diviser les équipes dans mes tableaux.  ;)  

Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Lister Une Base
« Réponse #3 le: 02 avril 2005 à 11:10:01 »
Je verrai plutot comme ca :
<?php
// on initialise les équipes
$equipe1 = "";
$equipe2 = "";
$equipe3 = "";
$equipe4 = "";

// on se connecte à MySQL
$db = mysql_connect('cl2-sql1', 'xxx', 'xxx');

// on sélectionne la base
mysql_select_db('xxx',$db);

// on crée la requête SQL
$sql="SELECT pseudo, equipe, url FROM utilisateurs WHERE equipe = equipe 1' ";

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
   {
   // on affiche les informations de l'enregistrement en cours
SWITCH ($data['equipe'])
{
  CASE "1": $equipe1.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
  CASE "2": $equipe2.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
  CASE "3": $equipe3.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
  CASE "4": $equipe4.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
  default: break;
}
   }

// on ferme la connexion à mysql
mysql_close();

// on affiche le tableau
echo "<table border=0><tr>
<td>Equipe 1</td><td>Equipe 2</td>
</tr><tr>
<td>$equipe1</td><td>$equipe2</td>
</tr></table>
<br><br>
<table border=0><tr>
<td>Equipe 3</td><td>Equipe 4</td>
</tr><tr>
<td>$equipe3</td><td>$equipe4</td>
</tr></table>
";
?>
« Modifié: 02 avril 2005 à 11:12:11 par Ice »

Hors ligne jppj

  • Habitué
  • **
  • Messages: 168
    • Holonet-System
Lister Une Base
« Réponse #4 le: 02 avril 2005 à 11:33:00 »
Euh Ice, tu es sûr pour la requette ?

// on crée la requête SQL
$sql="SELECT pseudo, equipe, url FROM utilisateurs WHERE equipe = equipe 1' ";

Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Lister Une Base
« Réponse #5 le: 02 avril 2005 à 11:54:17 »
Oups , j'avais pas fait gaffe au WHERE :
// on crée la requête SQL
$sql="SELECT pseudo, equipe, url FROM utilisateurs";

Hors ligne jppj

  • Habitué
  • **
  • Messages: 168
    • Holonet-System
Lister Une Base
« Réponse #6 le: 02 avril 2005 à 12:39:05 »
Je pense qu'il doit y avoir quelque chose que je ne comprend pas ton le code.

Dans ma base de données, dans les enregistrements, j'ai comme :
pseudo         equipe      url
Ben             equipe1     xxx
JBB             equipe2     xxx
Darkklem    equipe1     xxx

J'ai exactement repris ton code, et il ne m'affiche que ca :

Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Lister Une Base
« Réponse #7 le: 02 avril 2005 à 13:39:37 »
Faut voir au niveau des CASE
Si equipe est noté : equipe1 alors , faire le code qui suit
si equipe est noté : equipe 1  , remplacer equipe1 par equipe 1 juste apres les CASE
<?php
// on initialise les équipes
$equipe1 = "";
$equipe2 = "";
$equipe3 = "";
$equipe4 = "";

// on se connecte à MySQL
$db = mysql_connect('cl2-sql1', 'xxx', 'xxx');

// on sélectionne la base
mysql_select_db('xxx',$db);

// on crée la requête SQL
$sql="SELECT pseudo, equipe, url FROM utilisateurs' ";

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
  {
  // on affiche les informations de l'enregistrement en cours
SWITCH ($data['equipe'])
{
 CASE "equipe1": $equipe1.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
 CASE "equipe2": $equipe2.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
 CASE "equipe3": $equipe3.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
 CASE "equipe4": $equipe4.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
 default: break;
}
  }

// on ferme la connexion à mysql
mysql_close();

// on affiche le tableau
echo "<table border=0><tr>
<td>Equipe 1</td><td>Equipe 2</td>
</tr><tr>
<td>$equipe1</td><td>$equipe2</td>
</tr></table>
<br><br>
<table border=0><tr>
<td>Equipe 3</td><td>Equipe 4</td>
</tr><tr>
<td>$equipe3</td><td>$equipe4</td>
</tr></table>
";
?>
« Modifié: 02 avril 2005 à 13:40:32 par Ice »

Hors ligne jppj

  • Habitué
  • **
  • Messages: 168
    • Holonet-System
Lister Une Base
« Réponse #8 le: 02 avril 2005 à 13:47:06 »
Ah oki, désolé, je n'avais pas compris. :ph34r:, ca marche impeccablement !

Une fois n'est pas coutume ==> Encore merci de ton aide.  

Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Lister Une Base
« Réponse #9 le: 02 avril 2005 à 13:47:12 »
Rien à voir , mais vérifie l'adresse de ton site dans ton profil :D
Ca serait plutot : http://www.parcoursjedi.com/  :P  

Hors ligne jppj

  • Habitué
  • **
  • Messages: 168
    • Holonet-System
Lister Une Base
« Réponse #10 le: 02 avril 2005 à 13:51:55 »
Oui à une époque je travaillais avec le webmaster du Parcours du Jedi, mais travailler avec quelqu'un c'est toujours un peu dur et on s'est enguelé.

Ca faisait longtemps que je n'avais pas mis mon profil à jour. Je viens de le remettre au goût du jour  B)  

Hors ligne jppj

  • Habitué
  • **
  • Messages: 168
    • Holonet-System
Lister Une Base
« Réponse #11 le: 06 avril 2005 à 16:55:05 »
Désolé pour le double post...

Je suis en train de faire évoluer un peu le système d'affichage.

Donc j'ai toujours mes équipes, mais à une nuance prés, je veux que les membres s'affichent si le champ du joueur "valide" est égale à 1.

Donc je pense qu'il faut que je mette quelque part un "&&", mais où ?  :(  

Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Lister Une Base
« Réponse #12 le: 06 avril 2005 à 18:27:01 »
je ne comprends pas ce que tu veux dire par :
Citer
les membres s'affichent si le champ du joueur "valide" est égale à 1.

pour l'affichage, ca se passe ici :
// on affiche le tableau
echo "<table border=0><tr>
<td>Equipe 1</td><td>Equipe 2</td>
</tr><tr>
<td>$equipe1</td><td>$equipe2</td>
</tr></table>
<br><br>
<table border=0><tr>
<td>Equipe 3</td><td>Equipe 4</td>
</tr><tr>
<td>$equipe3</td><td>$equipe4</td>
</tr></table>
";
?>
Donc, avec des if .... tu affiches ou non.

Hors ligne jppj

  • Habitué
  • **
  • Messages: 168
    • Holonet-System
Lister Une Base
« Réponse #13 le: 06 avril 2005 à 18:53:53 »
Pour savoir si ils s'affichent ou pas c'est au cas par cas.

J'ai un peu de mal à voir où tu veux que je le mette  :huh:, désolé, je ne suis pas très doué.

Hors ligne smilynet

  • Habitué
  • **
  • Messages: 223
    • http://www.smilynet.com
Lister Une Base
« Réponse #14 le: 06 avril 2005 à 19:24:35 »
ici je suppose :

Citer
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
 {
 // on affiche les informations de l'enregistrement en cours
if($data['valide']==1){
SWITCH ($data['equipe'])
{
CASE "equipe1": $equipe1.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
CASE "equipe2": $equipe2.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
CASE "equipe3": $equipe3.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
CASE "equipe4": $equipe4.='<div align="center"><a href="http://jeu.holonet-system.com/'.$data['url'].'">'.$data['pseudo'].'</a></div> '; break;
default: break;
}
}
 }
ne pas oublier de fermer ton if
« Modifié: 06 avril 2005 à 19:26:03 par smilynet »