Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1492 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Select degressif

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] Select degressif

n°1064031
Jotunheim
A.K.A. FenrirDarkWolf
Posté le 28-04-2005 à 11:27:27  profilanswer
 

Sujet pas très clair, mais voilà mon problème :
 
Dans ma table, 5 champs : champ_1 ... à champ_5
A l'intérieur de ces champs, des valeurs de 1 à 10, sachant que l'on peut avoir les mêmes valeurs dans les differents champs.
 
L'utilisateur selectionne de 1 à 5 champs, pour chaque champ selectionné il selectionne une valeur de 1 à 10, et je veux que le résultat de sortie soit les enregistrement où le champ 1 est trouvé au moins une fois, puis le champ 2 au moins une fois dans les restants... et ainsi de suite...
 
Exemple : l'utilisateur choisit 2 champs, pour lesquels il veut la valeur 3 (il choisit donc 3 pour les deux). Je voudrais tous les enregistrements qui contiennent au moins 2 fois le nombre 3 (et donc pas ceux où il n'apparait qu'une fois).
 
Je peux gerer ça en SQL, ou vaut mieux passer par le sinstructions php directement ?
Merci de votre aide.

mood
Publicité
Posté le 28-04-2005 à 11:27:27  profilanswer
 

n°1064032
cesarr89
Posté le 28-04-2005 à 11:28:25  profilanswer
 

J'ai rien compris du tout....

n°1064051
Jotunheim
A.K.A. FenrirDarkWolf
Posté le 28-04-2005 à 11:40:20  profilanswer
 

lol, ca m'étonne pas, j'ai toujours été nul en explications...
 
Imagine que c'est pour afficher des recettes de cuisine avec maxi 5 ingredients. Dans la base, les enregistrements sont donc les recettes, 5 champs = 5 ingredients.
 
Ensuite, l'utilisateur choisi le nombre d'ingredients (sous entendu, ceux qu'il a à dispo), puis precise lesquels c'est.
 
Donc ma requête doit me trouver quelles recettes sont adaptées, sachant que s'il précise 2 fois le même ingredient, il faut une recette qui l'utilise au minimum 2 fois.
 
C'est plus clair ?

n°1064062
Elmoricq
Modérateur
Posté le 28-04-2005 à 11:46:38  profilanswer
 

Avec les fonctions d'aggrégation, tu devrais t'en sortir.
 
Un truc genre (à adapter à la sauce MySQL) :
 

Code :
  1. select champ_1, champ_2, ..., champ_n
  2. from table
  3. group by champ_à_grouper
  4. having count(champ_à_grouper) >= nombre_minimum_d'occurences


Message édité par Elmoricq le 28-04-2005 à 11:49:13
n°1064080
Jotunheim
A.K.A. FenrirDarkWolf
Posté le 28-04-2005 à 11:57:05  profilanswer
 

Intéressant, mais le problème est que je ne sais pas combien d'ingredient du type X seront présents. Même avec deux valeurs équivalentes, ils restent deux ingredients différents...
Ton idée m'ouvre une perspective intéressante, mais peut être compliquée à mettre en place...
 
 
En fait, un exemple de comment ca tourne ici :
http://lamesheroes.free.fr/recettes.php
 
Ca marche pour 1, ca marche pour + de 1 uniquement si les champs selectionnés sont différents (or ils doivent pouvoir être identiques).


Message édité par Jotunheim le 28-04-2005 à 12:02:54
n°1064113
Elmoricq
Modérateur
Posté le 28-04-2005 à 12:18:09  profilanswer
 

Jotunheim a écrit :

Intéressant, mais le problème est que je ne sais pas combien d'ingredient du type X seront présents. Même avec deux valeurs équivalentes, ils restent deux ingredients différents...


 
 :??:  
Je ne comprends pas ce que tu cherches à faire, et l'exemple sur ton site n'est pas très parlant non plus (si ce n'est que ça ressemble à de l'alchimie pour WoW :D )
 
 
EDIT : ah si, j'ai compris. Dans ce cas, tu devrais générer ta requête dynamiquement en PHP, ce sera bien plus simple.


Message édité par Elmoricq le 28-04-2005 à 12:20:08
n°1064246
Jotunheim
A.K.A. FenrirDarkWolf
Posté le 28-04-2005 à 14:05:18  profilanswer
 

C'est pour un dérivé de Wow, mais c'es bien de l'alchimie...
Justement, je veux générer ma requete en PHP, ca c'est pas le pb... Mon pb c'est que je sais pas à quoi elle doit ressembler au final. Si j'ai la bonne requete (qui marche avec un exemple), je saurais la construire en php...

n°1064248
Elmoricq
Modérateur
Posté le 28-04-2005 à 14:06:36  profilanswer
 

Tel que je vois la chose, tu dois compter les occurences d'une chaîne en PHP pour déterminer le nombre d'occurences à tester dans la requête.
 
Ou un truc dans le genre, j'ai pas vraiment de visibilité sur ton programme.


Message édité par Elmoricq le 28-04-2005 à 14:06:44
n°1064259
Jotunheim
A.K.A. FenrirDarkWolf
Posté le 28-04-2005 à 14:15:15  profilanswer
 

Mouais... Ca s'éclaircit un peu dans ma tête, je te remercie...

n°1064633
Jotunheim
A.K.A. FenrirDarkWolf
Posté le 28-04-2005 à 17:49:54  profilanswer
 

Comme le SQL et moi ca fait un peu 2, comment je selectionne les enregistrements qui ont 3 fois "toto" si j'ai
 

Code :
  1. +++++++++++++++++++++++++++++++++++++++++++++++++++
  2. idenr + champ1 + champ2 + champ3 + champ4 + champ5+
  3. +++++++++++++++++++++++++++++++++++++++++++++++++++
  4.    1  + toto   + titi   + tutu   + toto   + toto  +
  5. +++++++++++++++++++++++++++++++++++++++++++++++++++
  6.    2  + toto   + leon   + toto   + titi   + tutu  +
  7. +++++++++++++++++++++++++++++++++++++++++++++++++++


 
On ne doit avoir que l'enregistrement 1, mais je ne vois pas quelle peut être la requete à faire...


Message édité par Jotunheim le 28-04-2005 à 19:48:45

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Select degressif

 

Sujets relatifs
[MySQL] Création d'une requêtte[MYSQL 4.1] Probleme pour recreer une base a partir d'un dump
Sécurité PHP/Mysql (session, md5, HTTPS[socket] select() ou fork()?
[MySQL]Condition sur un COUNT ?formation mysql
problème de connexion à MySQL via DBIConvertir requête Select en requête Update
Oracle et MySQL, même protocole réseau ?Apache, MySQL, un problème.
Plus de sujets relatifs à : [MySQL] Select degressif


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR