PhP / SQL

Résolu
Bonjour, à tous/toues!

Je cherche a extraire des informations dans ma base de données sur mon site... Jusqu'à là
aucune probleme!

Voici le code:

<-------------------------------------------------------------------------------------------->

<?php

include('identifiant.php');
$cnx= mysql_connect($host,$utilisateur,$mdp);
$idbase= mysql_select_db('characters');
$requete="SELECT name AS 'Personnages', race AS 'Race', class AS 'Classe' FROM characters WHERE online = 0 ORDER BY name";

$result=mysql_query($requete,$cnx);
if(!$result)
{
echo "Lecture impossible";
}
else
{
$nbcol=mysql_num_fields($result);
$nbart=mysql_num_rows($result);

echo "<h3>Il y a $nbart personnages online:</h3>";

//Affichage titres
echo "<center><fieldset id=staff><legend>List</legend><table width=200px><tr>";
for($i=0;$i<$nbcol;$i++)
{
echo "<th class=th>", mysql_field_name($result,$i),"</th>";
}
echo "</tr>";

//Affichage valeur
for($i=0;$i<$nbart;$i++)
{
// $donnees = mysql_fetch_array($result);
$ligne=mysql_fetch_row($result);
echo "<tr>";
for($j=0;$j<$nbcol;$j++)
{

echo "<td><center>",$ligne[$j],"</center></td>";
}
echo "</tr>";
}
echo "</table></center>";
mysql_free_result($result);
}
?>
</fieldset>

<----------------------------------------------------------------------------------------------------------->

Voici mon probleme: Les valeurs 'Race' et 'classe' sont stocker sous un forme numérique.
(1 = une race tandis que 2 une autre... par exemple)
Comment faire en sorte qu'au lieu de me donner ces nombres... Il me ressorte les vrais race et
classe des personnage?!

J'ai penser au $donnees = mysql_fetch_array($requete);
$race = $donnees['race'];
Mais je n'arrive pas a le faire marcher correctement :'(

Quelqu'un aurait la réponse?! Merci d'avance!
Configuration: Windows Vista
Firefox 3.0

6 réponses

  1. Il faut préciser ta question : qu'est-ce-que la "vraie race" ? est-ce un libellé ? dans ce cas où sont stockés ces libellé ?
    0
    1. En gros je voudrai que mon script PhP dise: If Race=1 display ElF
      
      Pour le moment ca donne une list de tout les personnage enligne sur le serveur dans un tableau du style:
      
      Personnages                 Race                   Classe
        Zorkka                      5                        2  
        "Un autre nom"             9                         6
      etc...
      
      
      Le but serai donc de définir moi meme ces numero pour que les 5 correspondent a un Orc par exemple et donc donner:
      
      
      Personnages                  Race                      Classe
        Zorkka                    Orc                       Chasseur 
        "Un autre nom"             Elf                       Guerrier
      etc..
      0
      1. Salut,
        je comprends pas, pourquoi tu les stockes sous forme de nombre si tu veux qu'ils ressortent sous forme de texte? A ce compte là enregistre directement dans ta base de données une chaîne de caractères au lieu d'un nombre.
        0
        1. Le probleme est que le serveur du jeu marche comme ça... Je n'ai malheureusement pas (et de loin) la compétence a le modifier...

          Je dois donc me tourner vers le PhP pour essayé de modifier les valeurs quand il sont sorti de la base de données.
          0
          1. Ok, donc tu n'as qu'à te tourner vers un switch ou des if pour afficher la race correcte et la classe correcte.
            while ($donnees = mysql_fetch_array($result) )
            {
                    switch($donnees['race']){
                        case 1:
                        echo "Mort-Vivant";
                        break;
                        case 2:
                        echo "Tauren";
                        break;
                        case 3:
                        echo "Orc";
                        break;
                   }
                   switch($donnees['classe']){
                        case 1:
                        echo "Mage";
                        break;
                        case 2:
                        echo "Chasseur";
                        break;
                        case 3:
                        echo "Démoniste";
                        break;
                   }
            }

            Voilà le code, à toi de faire la mise en page et de changer les echo en fonction de ta base de données :)
            0
            1. Merci beaucoup! Je ne connaissait pas l'existence du switch :)
              0