$db = mysql_connect($sql_serveur, $sql_user, $sql_password) or die
('Erreur : '.mysql_error() );
mysql_select_db($db2) or die ('Erreur :'.mysql_error());
$query = "SELECT Race FROM Perso GROUP BY Race";
$result = mysql_query($query, $db) or die ("Requête invalide");
$count = mysql_num_rows($result);
Je viens de tester mon code et il marche très bien chez moi en tout cas ....
<?
mysql_connect("localhost","test","test");
mysql_select_db("test");
$query = "SELECT Race, count( Race ) AS TotRace FROM TLT_Perso GROUP BY Race";
$result = mysql_query($query);
while($data=mysql_fetch_array($result))
{
echo "Nombre de " . $data["Race"] . " : " . $data["TotRace"] . "
";
}
?>
Il faut faire attention à quelques détails comme la sensibilité de la case des systèmes Linux pour les champs et les noms de table ... J ai pas d hébergement chez multimania donc je peux pas vraiment plus t aider ... dsl
Tu peux meme enlever le GROUP BY Race s'il n'existe pas 2 races identiques...
Vérifie aussi l'orthographe, et la casse: respecte les majuscules/minuscules quoi....
Que la Force soit avec toi, Jeune Padawan!!!
$db = mysql_connect($sql_serveur, $sql_user, $sql_password) or die
('Erreur : '.mysql_error() );
mysql_select_db($db2) or die ('Erreur :'.mysql_error());
$query1 = "SELECT Race FROM TLT_Perso WHERE Race='Humain'";
$query2 = "SELECT Race FROM TLT_Perso WHERE Race='Elfe'";
$query3 = "SELECT Race FROM TLT_Perso WHERE Race='Nain'";
$query4 = "SELECT Race FROM TLT_Perso WHERE Race='Gobelin'";
$result1 = mysql_query($query1, $db) or die ("Requête invalide");
$result2 = mysql_query($query2, $db) or die ("Requête invalide");
$result3 = mysql_query($query3, $db) or die ("Requête invalide");
$result4 = mysql_query($query4, $db) or die ("Requête invalide");
$count1 = mysql_num_rows($result1);
$count2 = mysql_num_rows($result2);
$count3 = mysql_num_rows($result3);
$count4 = mysql_num_rows($result4);
mysql_close($db);
echo "Nombre d'Humains: $count1
Nombre d'Elfes: $count2
Nombre de Nains: $count3
Nombre de Gobelins: $count4";
oui, tu peux remplacer toutes tes requetes ($queryX...) par une seule requete, eyt tu n'exécute qu'une seule fois le code que tu répéts X fois (car si des nouvelles races apparaissent, tu devras réécrire ton code...):
$query= "SELECT Race FROM TLT_Perso ORDER BY Race";
$result=mysql_query($query) or die ("Requête invalide");
while($data=mysql_fetch_array($result))
{
switch($data['Race'])
{
case "humains":
$tabRace['humain']++;
break;
case "elfes":
$tabRace['humain']++;
break;
case "Nains":
$tabRace['Nains']++;
break;
case "Gobelins":
$tabRace['Gobelins']++;
break;
}
}
Ensuite tu peux afficher ton tableau car il contient 1 case par race, et le nombre de perso de cette race...
Avantage de cette méthode: tu n'as qu'une requête SQL à faire au lieu d'une par Race
j'en doute... a partir du moment ou tu as une Base de données et que tu peux faire des requetes dessus... je ne vois pas en quoi il peut te brider sur le type de requete que tu effectue
Que la Force soit avec toi, Jeune Padawan!!!
Une autre petite question en rapport.
J'ai fait le même principe pour afficher les joueurs dans l'ordre du plus riche au moin riche. Le tableau s'affiche mais je ne voi pas les cases. Quelqu'un pourait me dire la manipulation pour les afficher svp?
De plus, il y a un très grand espace entre la ligne echo "
Classement Richesses:
"; et echo "<gras>Nom |Or Cash |Or Banque |\";</gras> quand la page s'affiche.
Merci
Voici mon code:
echo \"
Classement Richesses:
\";
echo \"<table>----
Nom |Or Cash |Or Banque |\";
$query = \"SELECT Nom,PO,Banque FROM TLT_Perso ORDER BY PO Desc\";
$result = mysql_query($query);
while($data=mysql_fetch_array($result))
{
echo \"----
$num". $data[Nom] . ", <CENTER>" . $data[PO] . "</CENTER>, <CENTER>". $data[Banque] . "</CENTER>,
\";
}
echo "
";
wé en fait c'est juste le table border='1' :)
Merci pour l'aide :)
J'aurais une autre question mais je pense pas que sa soit réalisable.
Dans le jeu que je fait, le systeme de date n'est pas le même que le notre. 24h par jour, 10 jours par moi et 10 mois par cycle (année).
En fait j'aurais voulu savoir si c'était possible que lorsque le visiteur se connect sur le site, au lieu de voir la date réel de notre monde, il vois la date de l'univers du jeu.
Tu peux faire ca... Il faut que tu définisse ton temps 0 (par exemple 1° janvier 2000) et que tu calcules combien de jours de décalage cela te crée par rapport au temps Unix.
Ainsi lorsque quelqu'un se connecte tu récupère le Temps Unix (le vrai temps, dont le 0 est le 1° janvier 1970...) et tu compare à TON temps 0:
Aujourd'hui nous sommes le 4 Octobre 2004, il y a donc X jours écoulés depuis le début de ton système (=le nombre jours sous Unix - décalage du 1° janvier 2000. J'ai trop la flemme de faire le calcul).
Tu convertis X jours (qui est toujours sous le format normal: 24h/31j/12m) en secondes (car je suppose que ca ne change pas...) et tu reconvertis Y (c'est le nombre de secondes écoulés depuis le 1° janvier 2000) en temps de ton jeu (tu divise par 3600 pour les heures, puis par 10 pour les jours, puis par 10 encore pour les années)
Je sais pas si j'ai été très clair??? :question)
Bonne chance et dis nous ce que ca donne...
P.S.:évite jusqte de poster une nouvelle question dans un forum qui a déjà eu une réponse favorable... le gens ne vont pas forcément venir voir!
Petite correction:
_ Le temsp Unix est donné en secondes! pas besoin de faire de conversion jours->secondes
_ La division par 10, c'était pour les mois et non pour les années...