Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
si c'est indifferent, je veux à la fois rouge et vert, c'est à dire que je veux toutes les possibilites, à la fois rouge et à la fois vert.
De ne pas avoir de couleur indifferent est bien mon probleme, je ne vois pas comment stocker dans une meme variable soit le choix rouge soit vert soit indifferent qui signifie tout pour l'utiliser dans la requete finale.
Ou alors, je peut peut-être stocker dans une variable les choix définis tels rouge et vert et dans une autre le choix indifferent-tout, et interroger dans ma requete finale l'une OU l'autre des deux variables ?
Du genre WHERE couleur = "$couleur" OR "$indiff".
D'ailleurs, j'ai deja essaye mais ca marchait pas.
Je crois que je suis pas tres claire!
Hors ligne
mais, non
si c'est indifférent, tu ne mets aucune couleur.
if(@isset($_GET['couleur']) && $_GET['couleur'] != 'indifferent') {
$couleur=$_POST['couleur'];
$sqlC .= " WHERE couleur = '$couleur'"; // L'espace avant WHERE est important !!!
} ainsi, si c'est indifférent, tu n'aura pas de where, donc toutes les couleurs
Hors ligne
c'est ce que j'ai fait.
Ca fonctionne parfaitement si j'exploite le resultat de suite en affichant les resultats obtenus mais si j'utilie mon resultat dans une autre requete ca fonctionne pas.
Je m'explique:
<!--mon formulaire-->
<form name="recherche" method="post" action="recherche.php">
<table>
<tr>
<td>couleur</td>
<td><select name="couleur">
<option value="indifferent" selected>indifférent</option>
<option value="rouge">rouge</option>
<option value="vert">vert</option>
</select>
</font></td>
</tr>
</table>
<p align="center"><font face="Verdana, Arial, Helvetica, sans-serif">
</font></p>
<div align="center">
<input type="submit" value="Envoi">
<input type="hidden" name="Valide" value="1">
</div>
</form>
<!--ma requete finale qui fonctionne sauf pour indifferent et dont j'ai besoin car en principe j'ai 5 select à interroger donc je dois regrouper les criteres-->
<?
$sqlC = "SELECT couleur FROM table";
if((@isset($_POST['couleur'])) && ($_GET['couleur'] != "indifferent"))
{
$couleur=$_POST['couleur'];
$sqlC .= " WHERE couleur = '$couleur'";
}
$queryC = mysql_query($sqlC) or die (mysql_error());
$requete="SELECT * FROM table WHERE couleur='$couleur";
$resultat=mysql_query($requete) or die (mysql_error());
$Nresultat=count($resultat);
?>
<table>
<tr>
<td height="308" valign="top"> <table width="100%" cellpadding="4" cellspacing="4" border="0" bgcolor="#FFFF66">
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif"><? echo 'Il y a '.mysql_num_rows($resultat).' resultat(s) correspondant à votre recherche'; ?></font></td>
</tr>
</table>
<? echo '<br>';
echo '<table width="100%" cellpadding="4" cellspacing="4" border="0">';
while ($affiche=mysql_fetch_object($resultat))
{
echo '<tr><td><font face="Verdana, Arial, Helvetica, sans-serif">'.$affiche->Temoin_N.'</font></td></tr>';
}
echo '</table>';
}:?
Hors ligne
C'est normal. A la ligne de code ci-dessous, tu demandes $couleur. Or si $_POST['couleur'] est vide ou = à indifferent, $couleur n'est pas définie.
$requete="SELECT * FROM table WHERE couleur='$couleur";
Hors ligne
ben oui c'est bien mon probleme !!
voilà ce que j'ai tenté d'autre mais ca marche pas non plus, j'ai toujours 0 resultat:!: :
$sqlC = "SELECT couleur FROM table";
$couleur=$_POST['couleur'];
switch($couleur)
{
case 'rouge':
$sqlC="SELECT couleur FROM table WHERE couleur='rouge'";break;
case 'vert':
$sqlC="SELECT couleur FROM table WHERE couleur='vert'",break;
default:
$couleurIND=$couleur;break;
}
$queryC=mysql_query($sqlC) or die (mysql error());
$requete_finale="SELECT couleur FROM table WHERE couleur='$couleur' OR '$couleurIND'";
$resultat_final=mysql_query($requete_finale);merci!
ps: je n'ai pas pu insérer les balises de code, la balise fermante n'étant pas reconnue
Hors ligne
ok merci
Hors ligne