Bonjour,
me revoilà une question SQL mais je chercher et j'ai l'impression de chercher compliquer...
Alors j'ai une personne qui peut faire 3 sports
donc sport1, sport2, sport3 (pas de clef étrangere)
J'ai une table SPORT qui contient une liste de sport voulu.
Je voudrais faire une recherche des personnes qui pratique par exemple du football et de la basket mais ça me pose probleme...
par exemple prenons un personne :
X
sport1 : football
sport2 : randonnée
Y
sport1 : vélo
sport : basket
Z
sport1 : basket
sport2 : football
Si dans ma liste de choix donc 3 champs je mets football en premier et basket en 2eme...je vais avoir X et Y mais pas Z...car le basket est en sport1...vous voyez un peu ce que je veux dire.
J'avais donc pensé de faire une requête du genre
SELECT num_cli, nom_cli, prenom_cli FROM CLIENT WHERE sport1 IN (35,11,12) AND sport2 IN (35,11,12) AND sport3 IN (35,11,12) ORDER BY nom_cli
mais on dirait qu'il ne prend en compte que le sport1 et que le 35
Voilà un peu mon code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| $sport1 = $_POST['sport1'];
$sport2 = ",".$_POST['sport2'];
$sport3 = ",".$_POST['sport3'];
if ($_POST['sport1'] == 'aucun')
{
$sport1 = "";
}
if ($_POST['sport2'] == 'aucun')
{
$sport2 = "";
}
if ($_POST['sport3'] == 'aucun')
{
$sport3 = "";
}
## requête pour le sport1
$req_sport = mysql_query("SELECT * FROM SPORT ORDER BY lib_sport");
if ($_POST['sport1'] <> 'aucun')
{
while(($result=mysql_fetch_row($req_sport))!=NULL)
{
$sport_result1 = "AND sport1 IN (".$sport1."".$sport2."".$sport3.")";
}
}
## requête pour le sport2
$req_sport = mysql_query("SELECT * FROM SPORT ORDER BY lib_sport");
if ($_POST['sport2'] <> 'aucun')
{
while(($result=mysql_fetch_row($req_sport))!=NULL)
{
$sport_result2 = "AND sport2 IN (".$sport1."".$sport2."".$sport3.")";
}
}
## requête pour le sport3
$req_sport = mysql_query("SELECT * FROM SPORT ORDER BY lib_sport");
if ($_POST['sport3'] <> 'aucun')
{
while(($result=mysql_fetch_row($req_sport))!=NULL)
{
$sport_result3 = "AND sport3 IN (".$sport1."".$sport2."".$sport3.")";
}
} |
Partager