WANTED : Personne connaissant bien le PHP et requêtes mysql.

Répondre
Partager Rechercher
Je me permets de faire appel aux joueurs parcourant ces forums car je sais que nombre d'entre vous sont des webmasters expérimentés et que je suis sûr d'y trouver quelqu'un pouvant résoudre mon problème.

Je ne vais pas l'exposer ici car ca serait trop long mais svp allez lire mes explications si vous pensez pouvoir m'aider. Je sais que beaucoup d'entre-vous sont toujours prêts à rendre service aux autres joueurs et ce dans n'importe quel domaine.

Voici un lien où vous trouverez détaillé mon souci qui n'en est sûrement pas un pour vous, webmasters chevronnés que vous êtes

http://membres.lycos.fr/t4see3/index...esg&select=121

Et d'avance un GRAND MERCI de vous pencher sur la question


Laurent, alias Isofer de Keld


[edit]oups, j'aurais peut etre du le poster ailleurs que ds le general (désolé)
J'ai pas lu tout le code (je hais toujours la notation <?= ) mais ton problème est normal :

Gender est un nombre (0 pour les garcons, 1 pour les filles, ou ce qui y ressemble), tu lui demande ensuite d'afficher $wcr[0] ou $wcr[1] qui vaut lui le nom d'un pays (premier script), tu peux résoudre ca en disant :

Code PHP:

$tmp=mysql_query("SELECT gender, count(*) as c FROM ".C_MYSQL_MEMBERS." group by gender order by c desc");

$sexe = array("Homme","Femme");

while($i=mysql_fetch_array($tmp)) {


$color = ($color == COLOR4) ? COLOR3 : COLOR4;


?>


<Tr align="<?=C_ALIGN?>" bgcolor="<?=$color?>"><Td>


<?=$sexe[$i['gender']]?></Td><Td><?=$i['c']?></Td></Tr>


<?}?></Table></Td></Tr></Table>
En ne sachant pas le contenu de $wrc
Citation :
Provient du message de Grim
J'ai pas lu tout le code (je hais toujours la notation <?= ) mais ton problème est normal :

Gender est un nombre (0 pour les garcons, 1 pour les filles, ou ce qui y ressemble), tu lui demande ensuite d'afficher $wcr[0] ou $wcr[1] qui vaut lui le nom d'un pays (premier script), tu peux résoudre ca en disant :

Code PHP:

$tmp=mysql_query("SELECT gender, count(*) as c FROM ".C_MYSQL_MEMBERS." group by gender order by c desc");

$sexe = array("Homme","Femme");

while($i=mysql_fetch_array($tmp)) {


$color = ($color == COLOR4) ? C
OLOR3 : COLOR4;


?>


<Tr align="<?=C_ALIGN?>" bgcolor="<?=$color?>"><Td>


<?=$sexe[$i['gender']]?></Td><Td><?=$i['c']?></Td></Tr>


<?}?></Table></Td></Tr></Table>
En ne sachant pas le contenu de $wrc

Merci beaucoup! Ca a marché. Cependant, j'ai du changer un détail :

Au lieu de :

$sexe = array("Femmes", "Hommes")

J'ai du mettre :

$sexe = array("Non spécifié","Femmes", "Hommes")

Parce que dans le premier cas, seul "Hommes" s'affichait et la deuxième cellule restait vide.

J'ai alors inversé hommes avec femmes dans le code et là c'est femmes qui s'affichait.

J'en suis donc arrivé à la conclusion qu'il fallait réserver à hommes et femmes les deuxièmes et troisièmes positions



Merci encore mais il y a encore un truc qui me gêne.

Maintenant que ça fonctionne, j'ai essayé d'inverser "hommes" avec "femmes" (c.à.d. mettre hommes en 3ème position et femmes en 2ème).

Le problème c'est que femmes se retrouvent en face du chiffre des hommes et que hommes se retrouvent en face du chiffre des femmes.

Je pense que si je dechiffre bien le code et le comprends correctement, le tableau est trié en ordre décroissant selon le nombre.

Admettons (mais pour ce tableau la ce serait peu probable) que d'ici une semaine le nbre de femmes depasse celui des hommes. Le chiffre des femmes se trouverait alors en face de la premiere cellule, c'est a dire la cellule ou resterait encore l'intitulé "Hommes".

Ce n'est pas pour chercher la petite bête que je souligne ceci, mais c'est que je m'inquiète pour d'autres tableaux que j'envisage de faire. Premier exemple éloquent : Les serveurs sur lesquels jouent les membres. De semaines en semaines, les places risquent de changer (kc devant mytheas, puis mytheas devant KC, etc car il y aura bien une quinzaine de serveurs dans ce tableau).

Si je me permets de te demander encore cela, c'est que je pense qu'il doit y avoir une solution simple pour remédier à cela... c'est de changer le tri des données dans le tableau.

Si j'ai bien compris, c'est à cette ligne-là que tout se joue :

$tmp=mysql_query("SELECT gender, count(*) as c FROM ".C_MYSQL_MEMBERS." group by gender order by c desc");



Ou alors réussir à faire en sorte que les intitulés de gauche (hommes et femmes) se trient en même temps que les données de droite, et de la même manière bien évidemment.



Voilà, j'espère que cette fois-ci c'est aussi simple que je le pense... en tous les cas merci encore énormément pour cette réponse rapide et précise!



Ah, et tu te demandais ce que c'était que $wcr.

Je n'en sais rien mais j'ai essayé de remplacer pour voir $sexe par $wcr (avant dernière ligne du code que tu m'as proposé) et ça m'a remis FRANCE et CANADA comme intitulés à la place de hommes et femmes (en changeant rien que ca, je precise).
Bon, j'ai pas le coeur de citer tout le message alors dans l'ordre :

Citation :
$sexe = array("Non spécifié","Femmes", "Hommes")
peut être remplacé par

Code PHP:

$sexe = array(1=>"Homme","Femme"); 

à moins que le non spécifié existe vraiment

Pour ton deuxième problème, je vois pas trop ce que ça change, tu obtiens un résultat sql du genre :
1 : 125
2 : 65
ou dans le cas contraire
2 : 125
1 : 65

l'indice permettant d'afficher le sexe étant aussi un résultat de la table, tu ne devrais pas avoir de problèmes
Citation :
Provient du message de Isofer de Keld
Ok... tout marche PARFAITEMENT

Il me reste deux, trois détails à régler mais grâce à toi je vais pouvoir tranquillement mettre en place toutes les stats que je veux!

Merci encore infiniment



Laurent
C'était un plaisir de résoudre un problème pas compliquer
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés