Requêtes conditionnelles
Résolu
margChamo
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
margChamo Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
margChamo Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde,
je sollicite votre aide aujourd'hui car j'ai une requête avec de condition qui ne fonctionne pas.
J'explique : j'ai une page php appeler "liste.php" qui est relier à une base de données sous wamp, cette page affiche tous les champs qui vont être projeté et sous chaques champs, il a des cases ou l'utilisateur peut rentrer des informations lui permettant de faire des restrictions. Tout ce ci est dans un formulaire dont le résultat s'affiche sur une page nommée "imprim.php". Lorsqu'il n'y a pas de restriction tous les champs s'affichent bien, mais dès que l'utilisateur rentre une restriction ce la ne fonctionne plus et m'affiche les erreur suivantes :
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\NouveauDossier\imprim.php on line 140
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\NouveauDossier\imprim.php on line 159
Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\NouveauDossier\imprim.php on line 163
Voici le morceau de code correspondant :
imprim.php
// établissement de la requête à afficher
$req = "SELECT * FROM personnel" ;
$whereok = false; //initialisation de la variable whereok
if ($_POST["civilite"] != NULL){ //si civilite est différent de null
$req = $req."WHERE civilite ='".$_POST['civilite']."'"; //rajouter un where
$whereok = true; //et mettre whereok a true sinon rien faire
}
if ($_POST["nom"] != NULL){ //si nom est différent de null
if ($whereok == true){ //si whereok existe
$req = $req."AND nom ='".$_POST['nom%']."'"; //alors rajouter un AND a la requête
}
else{
$req = $req."WHERE nom = '".$_POST['nom%']."'"; //si whereok n'existe pas alors rajouter un where
$whereok = true; //et mettre whereok a true sinon rien faire
}
}
if ($_POST["prenom"] != NULL){ //si nom est différent de null
if ($whereok == true){ //si whereok existe
$req = $req."AND prenom = '".$_POST['prenom%']."'"; //alors rajouter un AND a la requête
}
else{
$req = $req."WHERE prenom = '".$_POST['prenom%']."'"; //si whereok n'existe pas alors rajouter un where
$whereok = true; //et mettre whereok a true sinon rien faire
}
}
liste.php :
<h3> Civilité <br/><SELECT NAME = "civilite" >
<option value = "" > </option>
<option value = "M" > M </option>
<option value = "MME" > MME </option>
<option value = "MELLE" > MELLE </option>
</SELECT></h3>
<h3> Nom <br/><input type = "text" name = "nom" size = 30 maxlength = 30 ></h3>
<h3> Prénom <br/><input type = "text" name = "prenom" size = 20 maxlength = 20 ></h3>
merci d'avance pour votre aide
cordialement
MargChamo
je sollicite votre aide aujourd'hui car j'ai une requête avec de condition qui ne fonctionne pas.
J'explique : j'ai une page php appeler "liste.php" qui est relier à une base de données sous wamp, cette page affiche tous les champs qui vont être projeté et sous chaques champs, il a des cases ou l'utilisateur peut rentrer des informations lui permettant de faire des restrictions. Tout ce ci est dans un formulaire dont le résultat s'affiche sur une page nommée "imprim.php". Lorsqu'il n'y a pas de restriction tous les champs s'affichent bien, mais dès que l'utilisateur rentre une restriction ce la ne fonctionne plus et m'affiche les erreur suivantes :
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\NouveauDossier\imprim.php on line 140
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\NouveauDossier\imprim.php on line 159
Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\NouveauDossier\imprim.php on line 163
Voici le morceau de code correspondant :
imprim.php
// établissement de la requête à afficher
$req = "SELECT * FROM personnel" ;
$whereok = false; //initialisation de la variable whereok
if ($_POST["civilite"] != NULL){ //si civilite est différent de null
$req = $req."WHERE civilite ='".$_POST['civilite']."'"; //rajouter un where
$whereok = true; //et mettre whereok a true sinon rien faire
}
if ($_POST["nom"] != NULL){ //si nom est différent de null
if ($whereok == true){ //si whereok existe
$req = $req."AND nom ='".$_POST['nom%']."'"; //alors rajouter un AND a la requête
}
else{
$req = $req."WHERE nom = '".$_POST['nom%']."'"; //si whereok n'existe pas alors rajouter un where
$whereok = true; //et mettre whereok a true sinon rien faire
}
}
if ($_POST["prenom"] != NULL){ //si nom est différent de null
if ($whereok == true){ //si whereok existe
$req = $req."AND prenom = '".$_POST['prenom%']."'"; //alors rajouter un AND a la requête
}
else{
$req = $req."WHERE prenom = '".$_POST['prenom%']."'"; //si whereok n'existe pas alors rajouter un where
$whereok = true; //et mettre whereok a true sinon rien faire
}
}
liste.php :
<h3> Civilité <br/><SELECT NAME = "civilite" >
<option value = "" > </option>
<option value = "M" > M </option>
<option value = "MME" > MME </option>
<option value = "MELLE" > MELLE </option>
</SELECT></h3>
<h3> Nom <br/><input type = "text" name = "nom" size = 30 maxlength = 30 ></h3>
<h3> Prénom <br/><input type = "text" name = "prenom" size = 20 maxlength = 20 ></h3>
merci d'avance pour votre aide
cordialement
MargChamo
A voir également:
- Requêtes conditionnelles
- Mises en forme conditionnelles excel - Guide
- Expliquez les différences entre les différentes requêtes ✓ - Forum Programmation
- Nos systèmes ont détecté un trafic exceptionnel sur votre réseau informatique. cette page permet de vérifier que c'est bien vous qui envoyez des requêtes, et non un robot. que s'est-il passé ? - Forum MacOS
- Réessayez plus tard il est possible que votre ordinateur ou votre réseau envoie des requêtes automatiques. pour la sécurité de nos utilisateurs, nous ne pouvons pas traiter votre demande pour le moment. pour en savoir plus, consultez notre page d'aide. valider - Forum Virus
- N26 votre appareil a envoyé trop de requêtes sur une courte période de temps. veuillez patienter. - Forum Consommation & Internet