Problème sur un formulaire de recherche php
pipoch
-
xav3601 Messages postés 3289 Date d'inscription Statut Membre Dernière intervention -
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 :
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
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
A voir également:
- Problème sur un formulaire de recherche php
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Formulaire de reclamation instagram - Guide
- Fréquence tnt recherche manuelle - Forum Téléviseurs
2 réponses
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?
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?