Bonjour,
Je possède une base de données qui liste les fruits par "type" et par "couleur".
Je souhaite créer des paniers en allant chercher 10 fruits selon des types et des couleurs définis par un script aléatoire.
Mon problème vient du fait que j'ai besoin que la sélection des 10 fruits soit toujours différente (aucun fruit en double dans mon panier).
Il est possible que certains paniers soient composés uniquement de fruits du même type ou de la même couleur, ce n'est pas grave.
Voici comment je m'y prends actuellement :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 $req = $database->prepare('SELECT id FROM fruits WHERE type = ? AND couleur = ? ORDER BY RAND() LIMIT 1'); $req->execute(array($type_fruit_1, $couleur_fruit_1)); $fruit_1 = $req->fetch(); $req->closeCursor(); * $req = $database->prepare('SELECT id FROM fruits WHERE type = ? AND couleur = ? AND id != ? ORDER BY RAND() LIMIT 1'); $req->execute(array($type_fruit_2, $couleur_fruit_2, $fruit_1['id'])); $fruit_2 = $req->fetch(); $req->closeCursor(); * $req = $database->prepare('SELECT id FROM fruits WHERE type = ? AND couleur = ? AND id != ? AND id != ? ORDER BY RAND() LIMIT 1'); $req->execute(array($type_fruit_3, $couleur_fruit_3, $fruit_1['id'], $fruit_2['id'])); $fruit_3 = $req->fetch(); $req->closeCursor(); * ...
Je trouve cette méthode plutôt "lourde" étant donné qu'elle se poursuit 7 fois encore.
Savez-vous comment je pourrais optimiser cette partie de mon script ?
Je vous remercie d'avance pour votre aide.
Partager