WHERE 'champ'="variable à plusieurs valeurs ?"
Posté : 16 août 2005, 13:42
Bonjour à tous !
Je poursuis dans mes questions et difficultés...
Ma table : contient des vins
Page 1 : l'utilisateur définit ses paramètres d'affichage de sa cave
Page 2 : la cave s'affiche
Page 3 : la cave affiche uniquement les vins sélectionnés
Je voudrais afficher cette page 3 comme la page 2 c.a.d. afficher les vins (sélectionnés) selon un ordre (par exe. d'abord les bordeaux, ensuiite les bourgognes, etc.). Mon pb c'est que je n'arrive pas dans ma requête à lui dire "select * from caves WHERE codevin=" tous les vins sélectionnés". J'arrive simplement à faire "select * from caves WHERE codevin=" le 1er vin sélectionné" et après ++. Résultat : pour chaque vin il m'affiche la région, le millésime, etc. bref les critères d'affichage de tous les vins...
Petit exemple ce sera plus clair...
ce que je veux :
BOURGOGNE
- echezeaux
- beaune
BORDEAUX
- médoc
- graves
ce que j'ai :
BOURGOGNE
- echezeaux
BOURGOGNE
- beaune
BORDEAUX
- médoc
BORDEAUX
- graves
Le code de la page :
Je poursuis dans mes questions et difficultés...
Ma table : contient des vins
Page 1 : l'utilisateur définit ses paramètres d'affichage de sa cave
Page 2 : la cave s'affiche
Page 3 : la cave affiche uniquement les vins sélectionnés
Je voudrais afficher cette page 3 comme la page 2 c.a.d. afficher les vins (sélectionnés) selon un ordre (par exe. d'abord les bordeaux, ensuiite les bourgognes, etc.). Mon pb c'est que je n'arrive pas dans ma requête à lui dire "select * from caves WHERE codevin=" tous les vins sélectionnés". J'arrive simplement à faire "select * from caves WHERE codevin=" le 1er vin sélectionné" et après ++. Résultat : pour chaque vin il m'affiche la région, le millésime, etc. bref les critères d'affichage de tous les vins...
Petit exemple ce sera plus clair...
ce que je veux :
BOURGOGNE
- echezeaux
- beaune
BORDEAUX
- médoc
- graves
ce que j'ai :
BOURGOGNE
- echezeaux
BOURGOGNE
- beaune
BORDEAUX
- médoc
BORDEAUX
- graves
Le code de la page :
<?php
$nb_element = htmlentities($_POST['nb_element'],ENT_QUOTES);
$nb_element = (isset($_POST['nb_element']))?(int)$_POST['nb_element']:'';
$case = Array();
for ($i=0;$i<$nb_element;$i++)
{
$case[] = htmlentities($_POST['case'.$i]); //on mets tout dans un tableau
if (isset($case[$i])) //case0=1ère ligne case1=2nde ligne case2=3ème ligne case4=3ème ligne etc...
{
$db = mysql_connect('xx','xx','xx') or die('Erreur de connexion ');
mysql_select_db('xx') or die('Erreur de selection database ');
$requete = "SELECT * FROM caves WHERE codevin='".$case[$i]."' ORDER BY '".$ordered1."', '".$ordered2."', '".$ordered3."' ";
$sql = mysql_query($requete) or die (mysql_error());
$critere1 = '';
while ($donnees = mysql_fetch_array($sql) ) {
// si $critere1 est vide : c'est le premier passage
// ou si $critere1 est différent du critere1 de la ligne
if (empty($critere1) OR $critere1 != $donnees[$ordered1])
{
// on affiche le critere1
echo '<br><br><p class="Style1"><u>'.$donnees[$ordered1].'</u></p>';
// on stocke le nouveau
$critere1 = $donnees[$ordered1];
}
if (empty($critere2) OR $critere2 != $donnees[$ordered2])
{
// on affiche le critere2
echo '<p class="Style3">'.$donnees[$ordered2].'<br>';
// on stocke le nouveau
$critere2 = $donnees[$ordered2];
}
echo '<span class="Style6">'.$donnees[$crit1].' - '.$donnees[$crit2].' - '.$donnees[$crit3].' - </span><em><span class="Style7">'.$donnees[$crit4].'</em></span><br />';
$critere2 = $donnees[$ordered2];
}
}
}
?>
Merci !