Problème sur un formulaire de recherche php

pipoch -  
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai fait un formulaire de recherche en php, j'arrive à récupérer mes valeurs mais il faut que les zones de textes ou de liste déroulantes soient remplis. si je laisse un critères de recherche vide, alors il est considéré comme nul.Je voudrai donc que mes critères non-remplis ne soient pas pris en compte dans ma requete.

voila une partie de mon formulaire :
<form action="modif1_pc.php" method="post">  
<table border="1">  
   <tr><th>Champs</th>  
       <th>zone de texte</th>  
       <th>Exemple</th>  
   </tr>      
               
   <tr><td>Numéro de série :</td>  
       <td><input type="text" name="num_serie_mac"/></td>  
       <td>BBQV34J</td>  
   </tr>  
   <tr><td>Serveur :</td>  
       <td><input type="text" name="fonction_srv"/></td>  
       <td>Proxy</td>  
   </tr>  
   <tr><td>Fin de Stock :</td>  
       <td><input type "text" name="fin_stock"/></td>  
       <td>oui|non</td>  
   </tr>  
   <tr><td><label for="date_achat_mac">Date d'achat :</label></td>  
       <td><select name="date_achat_mac" id="date_achat_mac">  
       <?php  
            $reponse = $cnx->query('SELECT distinct date_achat_mac  
               FROM Machine');  
             while ($data = $reponse->fetch())  
             {  
        ?>  
         <option value="<?php echo $data['date_achat_mac'];?>" >  
   <?php echo $data['date_achat_mac'];?>  
   </option>  
         <?php  
              }  
              $reponse->closeCursor();  
          ?>  
          </select></td></tr>  
</table>  
<input type="submit" name="modif_pc" value="valider"><br/>  


voila une partie de la page appelée par mon formulaire :

<code >
<?php
error_reporting(E_ALL ^ E_NOTICE);

if('$modif_pc')
{
if((!empty($_POST['date_achat_mac'])) &&(!empty($_POST['num_serie_mac']))
&& (!empty($_POST['fonction_srv'])) && (!empty($_POST['fin_stock']))
&& (!empty($_POST['num_mar_mac'])) && (!empty($_POST['num_sal_mac']))
&& (!empty($_POST['ram']))):

$req=$cnx->prepare("SELECT num_mac,nom_reseau,num_serie_mac,nom_mar,
des_mac,date_achat_mac,capacite_dd,ram,
fin_stock,ane_sortie,type_salle,des_lieu,nom_site
FROM Machine,Marque,Salle,Lieu,Site
WHERE num_sal_mac=num_salle AND num_lieu=num_lieu_salle
AND num_site=num_site_lieu AND num_mar=num_mar_mac
AND date_achat_mac= ?
AND num_serie_mac= ?
AND fonction_srv= ?
AND fin_stock=?
AND num_mar_mac= ?
AND num_sal_mac= ?
AND ram= ?") or die(print_r($cnx->errorInfo()));


$req->execute(array($_POST['date_achat_mac'],$_POST['num_serie_mac'],
$_POST['fonction_srv'],$_POST['fin_stock'],
$_POST['num_mar_mac'],$_POST['num_sal_mac'],
$_POST['ram']));

elseif((!empty($_POST['date_achat_mac'])) && ($_POST['num_serie_mac']=="NULL")
&& ($_POST['fin_stock']=="NULL") && ($_POST['num_mar_mac']=="NULL")
&& ($_POST['num_sal_mac']=="NULL") && ($_POST['ram']=="NULL")):

$req=$cnx->prepare("
SELECT distinct num_mac,nom_reseau,num_serie_mac,nom_mar,
des_mac,date_achat_mac,capacite_dd,ram,
fin_stock,ane_sortie,type_salle,des_lieu,nom_site FROM Machine,Marque,Salle,Lieu,Site
WHERE num_sal_mac=num_salle AND num_lieu=num_lieu_salle
AND num_site=num_site_lieu AND num_mar=num_mar_mac
AND date_achat_mac= ?
") or die(print_r($cnx->errorInfo()));

$req->execute(array($_POST['date_achat_mac']));

endif;
}
</code>

Merci d'avance

2 réponses

xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Salut!
Tu peux dire quel est ton problème actuellement?
Ca te met la valeur null dans ta requete et du coup elle te retourne rien?
0
pipoch
 
En fait, sa me met la valeur nulle, donc le requete va chercher dans la BDD les champs qui ont cette valeur ; Et je voudrai que le critère de recherche qui n'est pas remplis ne soit pas pris en compte
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Il faut que tu créer une requête dynamique en utilisant le pl/sql!
0
pipoch
 
ok, merci. je vais me documenter.
le pl/sql fonctionne t'il sur les BDD mysql ??
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Si tu as des problèmes revient par ici :-)
0