Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 19/10/2006, 21h14   #1
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
Par défaut [Conception] SELECT aux hasards en multi table

Bonsoir!

J'espère que vous allez toutes et tous très bien!

Pour illustrer mon problème je vais prendre un exemple fictif mais simple.

Le contexte:
Un site relatif à un sport. On y enregistre les pays, les équipes et les joueurs de ces équipes. On imagine donc la table "pays", la table "equipe" et la table "joueur"; la table "equipe" comporte un champ "pays" qui permet de lier à l'ID de la table "pays"; la table "joueur" comporte un champ "equipe" qui permet de lier à l'ID de la table "equipe".

La problématique:
Sur une page on souhaite afficher les 4 premièrs pays [par ordre d'ID croissant - "ORDER BY pays.id ASC"]; on imagine qu'une seule équipe est lié à chaques pays; et, pour chacunes de ces équipes on affiche un des joueurs aux hasard. On aura donc une requête dans ce genre:
Code :
1
2
3
4
SELECT pays.nation,equipe.club,joueur.identite
FROM pays LEFT JOIN equipe ON (pays.id=equipe.pays) LEFT JOIN joueur ON (equipe.id = joueur.equipe)
GROUP BY equipe.id
ORDER BY pays.id ASC,RAND()
Mes questions:
La requête ci-dessus est fonctionnelle [cad sans erreur]... mais ça ne donne pas le résultat voulu . Le joueur affiché est toujours le même par équipe [cad un joueur différent pour chaques équipe, mais toujours le même pour une équipe donnée]. Une idée sur comment faire? Je sais appliquer le RAND() sur une seule table... mais là :s.

Merci d'avance pour vos aides!
Just est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2006, 22h27   #2
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
je crois savoir que la fonction rand() n'est qu'une fonction pseudo aléatoire, cad que si tu lui demande d'afficher 5 nombres entre 1 et 50, elle va les prendre au hasard mais si tu relance plusieurs fois la meme routine, tu auras toujours les meme 5 nombres...

Par contre, je ne saurais te guider vers une fonction vraiment aléatoire...

++
JC
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h54.


 
 
 
 
Partenaires

Hébergement Web