bonjour pour expliquer j'ai un ensemble de formulaire, un premier de type text qui ne contient que des chiffres (champ 1) , un second de type select (champ 2) et un troisième de type select aussi.
Mon problème est que quand je veux afficher les résultats de ma table avec le champ 1 et/ou champs 2 soit rien ne s'affiche avec un AND ou alors seulement les valeurs du champ 2 s'affiche si c'est un OR.
je vous met ma portion de code php en premier et en second le formulaire si ça peut aider à la compréhension
<?
if(isset($_GET'search'])!= NULL OR isset($_GET'Cloture_nir']) ) // on vérifie d'abord l'existence du POST et aussi si la requete n'est pas vide.
{
mysql_connect('localhost','root','root');
mysql_select_db('bd_cnav'); // on se connecte à MySQL.
$requete = htmlspecialchars($_GET'search']);
$module = htmlspecialchars($_GET'mode']);
$date = htmlspecialchars($_GET'date']);
if ($requete)
{
$query = mysql_query("SELECT * FROM bd_assure WHERE NIR LIKE '$requete%' && Type LIKE '%$module%' ORDER BY NIR DESC") or die (mysql_error());
}
else{
$query = mysql_query("SELECT * FROM bd_assure WHERE Type LIKE '%$module%' AND datelimit LIKE '%$date%' ORDER BY NIR DESC") or die (mysql_error());
}
$nb_resultats = mysql_num_rows($query);
?>
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/css/style.css" />
<form action="search.php" method="get">
<label for="search">Rechercher : </label>
<input type="text" name="search" placeholder=" NIR a 13 chiffres"/>
<select name="mode">
<option value=" ">Tous</option>
<option value="RDC">RDC</option>
<option value="DP">DP</option>
<option value="PR">PR</option>
<option value="SYST/CONV">SYST/CONV</option>
<option value="ASPA">ASPA</option>
</select>
<select name="date">
<option value=" "></option>
<option value="<? echo date('d/m/Y', (mktime(0, 0, 0, date("m") , date("d")-5, date("Y")))) ; ?>">5j</option>
</select>
<input type="submit" value="Cherche" />
</form>
Bon ça fonctionne avec ce format là mais cela ne me permet pas (évidemment) de faire une recherche associé au champ1 et champ 2
<?
if(isset($_GET'search'])!= NULL OR isset($_GET'Cloture_nir']) ) // on vérifie d'abord l'existence du POST et aussi si la requete n'est pas vide.
{
mysql_connect('localhost','root','root');
mysql_select_db('bd_cnav'); // on se connecte à MySQL.
$requete = htmlspecialchars($_GET'search']);
$module = htmlspecialchars($_GET'mode']);
$date = htmlspecialchars($_GET'date']);
if ($requete)
{
$query = mysql_query("SELECT * FROM bd_assure WHERE NIR LIKE '$requete%' ORDER BY NIR DESC") or die (mysql_error());
}
else{
$query = mysql_query("SELECT * FROM bd_assure WHERE Type LIKE '%$module%' OR datelimit LIKE '%$date%' ORDER BY NIR DESC") or die (mysql_error());
}
$nb_resultats = mysql_num_rows($query); ?>