Bonjour, je bloque sur une requête super simple. J'ai des cases à cocher (ID_type_autre) qui modifient ma requete PHP. Pour l'exemple je teste sur 1 et 6.
J'ai écrit la requête super nulle mais qui marche, mais j'ai plus de 10 critères donc ce n'est pas possible.
J'ai une table avec des produits expert_produit_fiche avec comme ID id_fiche
J'ai une table de croisement des criteres expert_produit_type_autre_tbl avec une clé commune ID_fiche et les ID des criteres ID_type_autre
Dans ma table de croisement je vais trouver des valeurs du genre :
3,6 -> 3 pour ID_fiche et 6 pour ID_type_autre
3,2
3,1
2,1
L'idée finale est d'afficher les fiches qui ont exclusivement les criteres 1 et 6. Faut il tout envoyer dans un tableau ?
$requete_level = mysql_query("SELECT epf.titre FROM expert_produit_fiche epf ");
while ($row_requete_level = mysql_fetch_object($requete_level))
{
$requete_level2 = mysql_query("SELECT * FROM expert_produit_type_autre_tbl eptat WHERE eptat.ID_fiche = $row_requete_level->id_fiche AND eptat.ID_type_autre = 1 ");
if(mysql_fetch_object($requete_level2)!=0)
{
$requete_level3 = mysql_query("SELECT * FROM expert_produit_type_autre_tbl eptat WHERE eptat.ID_fiche = $row_requete_level->id_fiche AND eptat.ID_type_autre = 6 ");
if(mysql_fetch_object($requete_level3)!=0)
{
.... etc
echo '-> '.$row_requete_level2->ID_type_autre.' - '.$row_requete_level->id_fiche.' - '.$row_requete_level->titre.'<br/>';
}
}
}
J'ai essayé avec des requetes du genre : SELECT * FROM expert_produit_fiche epf JOIN expert_produit_type_autre_tbl eptat ON epf.id_fiche = eptat.ID_fiche WHERE eptat.ID_type_autre IN (1,6) GROUP BY eptat.ID_fiche
Mais ce n'est pas discriminant, ca me renvoi tous produits qui on en commun 1 et 6.
Merci
J'ai écrit la requête super nulle mais qui marche, mais j'ai plus de 10 critères donc ce n'est pas possible.
J'ai une table avec des produits expert_produit_fiche avec comme ID id_fiche
J'ai une table de croisement des criteres expert_produit_type_autre_tbl avec une clé commune ID_fiche et les ID des criteres ID_type_autre
Dans ma table de croisement je vais trouver des valeurs du genre :
3,6 -> 3 pour ID_fiche et 6 pour ID_type_autre
3,2
3,1
2,1
L'idée finale est d'afficher les fiches qui ont exclusivement les criteres 1 et 6. Faut il tout envoyer dans un tableau ?
$requete_level = mysql_query("SELECT epf.titre FROM expert_produit_fiche epf ");
while ($row_requete_level = mysql_fetch_object($requete_level))
{
$requete_level2 = mysql_query("SELECT * FROM expert_produit_type_autre_tbl eptat WHERE eptat.ID_fiche = $row_requete_level->id_fiche AND eptat.ID_type_autre = 1 ");
if(mysql_fetch_object($requete_level2)!=0)
{
$requete_level3 = mysql_query("SELECT * FROM expert_produit_type_autre_tbl eptat WHERE eptat.ID_fiche = $row_requete_level->id_fiche AND eptat.ID_type_autre = 6 ");
if(mysql_fetch_object($requete_level3)!=0)
{
.... etc
echo '-> '.$row_requete_level2->ID_type_autre.' - '.$row_requete_level->id_fiche.' - '.$row_requete_level->titre.'<br/>';
}
}
}
J'ai essayé avec des requetes du genre : SELECT * FROM expert_produit_fiche epf JOIN expert_produit_type_autre_tbl eptat ON epf.id_fiche = eptat.ID_fiche WHERE eptat.ID_type_autre IN (1,6) GROUP BY eptat.ID_fiche
Mais ce n'est pas discriminant, ca me renvoi tous produits qui on en commun 1 et 6.
Merci
)
, car quand on travaille sur une base le sql et le langage transactionnel sont assez suffisants pour avoir les informations voulues, toute fois ce code c'est un consommateur intense de ressources, et pertes de temps
.