[Résolu] Sélection SQL et hasard orienté - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu] Sélection SQL et hasard orienté (/showthread.php?tid=1600) |
[Résolu] Sélection SQL et hasard orienté - Eluox - 22-04-2008 Bonjour, je me heurte a un probleme, J'ai une table user, avec un champ credit,pseudo,id ect J'ai une autre table stockant des sites, qui contient un champ id, id_user ( l'id du gars a qui appartient le site), l'url et le nom. Je voudrais selectionné aléatoirement des url dans la table, je fais donc une requête avec un Code PHP :
Selectionné aléatoirement dans la table de sites, en fonctions des credits de l'user Plus l'user a de credits, plus le site a de chance d'être tiré de la table. J'espere vous comprenez ce que je veux dire, mais moi, j'y arrive pas ( et si j'y arrive sa fera exploser mon serveur ) Cordialement, RE: Selection base de donnée en fonction d'un champ mais aléatoirement - Dolphy - 22-04-2008 Petite solution de code de papy la bricole : Tu fais un SELECT credit FROM ta_table ORDER by credit DESC limit 1 Normalement tu te retrouve avec une variable contenant le plus haut crédit possédé par un joueur. Après tu fais un : $mini = rand(0,$credit_max); Et après tu fais un : SELECT tes_champs FROM ta_table WHERE credit>=$mini ORDER BY RAND() Théoriquement avec ta première génération aléatoire tu élimines aléatoirement ceux qui ont moins d'un certain nombre de crédit Et avec le order by rand() tu refais une selection d'un seul parmis ceux qui sont passés au travers de la première sélection. Je sais c'est pas très clair mais ça peut être une solution RE: Selection base de donnée en fonction d'un champ mais aléatoirement - Belsion - 23-04-2008 Je te propose ça, mais à voir niveau performance ce que ça va donner Citation :SELECT site.url, site.nom, ... , (user.credit*RAND()) AS randNumber FROM site Et tu dois aussi pouvoir faire directement: Citation :SELECT site.url, site.nom, ... FROM site RE: Selection base de donnée en fonction d'un champ mais aléatoirement - Eluox - 23-04-2008 A locker Thanks All Cordialement |