Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/03/2011, 14h04   #1
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
Par défaut Faire un classement php/mysql

Bonjour, sur un site de pronostics de courses de cheveaux, je cherche à faire un classement des pronostics du genre :

numéro 1 a été joué 5 fois
numéro 15 a été joué 6 fois
etc ...

Les noms des champs dans la base de données sont C1 C2 C3 C4 C5 C6 C7 et C8

Chacun de ces champs pouvant contenir les memes chiffres, par exemple une ligne de résultat peut tres bien comporter dans C1 la valeur 2 et sur lautre ligne C5 est susceptible de contenir également 2 ...
Bref j'espere avoir été assez clair, posez moi des questions si ce n'est pas le cas .

Par avace merci beaucoup pour votre aide . Cordialement .
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 14h29   #2
Membre régulier
 
Inscription : novembre 2010
Messages : 102
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 102
Points : 86
Points : 86
Salut,

Code :
1
2
3
SELECT nom, nombre
FROM course
ORDER BY nombre [ASC, DESC]
Soull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 15h18   #3
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
merci, mais je ne sais pas si ta requete répond a ma question, as tu bien compris que je cherche a savoir combien de fois a été joué le numéro 2, ou le numéro trois, etc ... ?

Mais cela doit etre calculé grace aux valeurs des champs C1, C2, C3, C4, C4 ... C8

Exemple :
---------
joueur 1 :
C1: 5
C2: 8
C3: 4
C4: 11
C5: 16
C6: 12
C7: 3
C8: 1

joueur 2 :
C1: 6
C2: 3
C3: 7
C4: 13
C5: 11
C6: 4
C7: 5
C8: 16

Voilà, ma requete devrait donc trouver :

Le numéro 5 a été joué 2 fois
le numéro 8 a été joué 1 fois
le numéro 4 a été joué 2 fois
etc ...

voilà, un exemple en dit bien plus que des phrases parfois
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 18h22   #4
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 112
Points : 110
Points : 110
Bonjour

Tu devrais intégrer les numéro de chevaux dans un array.
Ensuite faire un FOREACH de cet Array.
Tu test le numéro sur chaque champs dans ta requête puis tu
Calcul le nombre de ligne.

En espérant que cela t'aide

Yasen77
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 11h57   #5
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
je crois comprendre mais il est vrai que je n'ai jamais utilisé le foreach, aurais tu un petit exemple stp ? merci beaucoup on approche du but
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 12h40   #6
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
mysql_connect('localhost','root','');
mysql_select_db('base');
 
$requete=mysql_query("SELECT * FROM test");
$r=mysql_fetch_array($requete);
 
$i = 0; /* uniquement pour l'illustration */
 
foreach ($r as $v) {
    echo "\$r[$i] => $v.\n";
    $i++;
}
?>
Voilà ce que j'ai fait comme test car j'ai lu un tuto sur foreach, mais comment compter combien de fois sa trouve la valeur 1,2,3, etc ... et l'afficher ?

Pour l'instant, j'ai juste un tableau associatif qui s'affiche avec les valeurs retournées .

Merci encore
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 15h00   #7
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 112
Points : 110
Points : 110
bonjour,

Je pense que devrais fonctionner :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 
$num_chx = array("1","2","5",etc);
 
foreach ($num_chx as $val)
{
 
$sql = "SELECT * FROM ta_table WHERE C1='".$val."' OR C2='".$val."' ... OR C8='".$val."'";
$req = mysql_query($sql) or die(mysql_error());
$result = mysql_num_rows($req);
 
echo "Le numéro ".$val." a été joué ".$result." fois";
 
}
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 15h08   #8
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
arf ... que les choses deviennent simples quand on cherche le compliqué .......................................

Merci mille fois ! Sa marche
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 17h32   #9
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
Derniére petite question, comment mettre dans l'ordre, c'est à dire faire un classement croissant ou décroissant de ces résultats ? Sa doit pas être bien compliqué mais bon ... merci encore
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 19h10   #10
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 112
Points : 110
Points : 110
pour une solution rapide, je passerai par une table intermédiaire avec la référence de la course, les numéros des chevaux et le résultat du calcul.

a partir de la, on peut affiché dans l'ordre que l'on veux.

après, je vais regarder, si il existe une solution autre.
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 02h05   #11
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
Non ne cherche plus celà me semble être LA solution, c'est simple comme bonjour en plus

Merci encore (et désolé pour cette dernière question digne d'un débutant ...)
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 04h12   #12
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
Bon, j'ai fait cette solution, théoriquement sa devait marcher sans probleme, sauf que j'ai un probleme, sa m'affiche comme suit :


Cheval n°13 : 1 fois
Cheval n°8 : 10 fois
Cheval n°16 : 11 fois
Cheval n°3 : 12 fois
Cheval n°1 : 14 fois
Cheval n°7 : 14 fois
Cheval n°5 : 16 fois
Cheval n°2 : 2 fois
Cheval n°15 : 2 fois
Cheval n°6 : 4 fois
Cheval n°9 : 4 fois
Cheval n°4 : 6 fois
Cheval n°12 : 6 fois
Cheval n°10 : 7 fois
Cheval n°11 : 7 fois
Cheval n°14 : 8 fois


En gros, il compte les chioffres comme si c'était des nombres et donc classe par dizaines ... comment sa se fait ? dois-je mettre une fonction qui remplace les chiffres de 1 à 9 par 01,05,09, etc ... ? ou y'a t'il une solution plus simple, bien que sa soit pas tres compliqué à réaliser en soi ... ?

Merci encore .
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 03h46   #13
Membre du Club
 
Inscription : septembre 2007
Messages : 402
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 402
Points : 68
Points : 68
okok, bon ben le probleme était simplement que je devais mettre le champ en smallint dans mysql ...
cuisto44000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h25.


 
 
 
 
Partenaires

Hébergement Web