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>

1 réponse


KTC
Auteur
Réponse acceptée

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); ?>