Menu

Récupérer les résultats selon les checkboxes cochés

deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 16 juil. 2017 à 15:57 - Dernière réponse : yg_be 5226 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention
- 18 juil. 2017 à 20:18
Bonjour ,

je n'arrive pas a récuperer les résultats qu'il faut
si je coche 1 checkbox -> il ya un résultat
lorsque je coche plusieurs l'erreur dans lla capture s'affiche
lorsque je saisi les autres champs il ya un résultat
si je combine les checkbox et les input
méme erreur s'affiche
est ce que vous pouvez m'aider ?
Merci


              <?php
//activation de l'affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display-errors','on');

//------------------------------------------------------------//
// le temps des tests
//------------------------------------------------------------//



//------------------------------------------------------------//
//récupération PROPRE des variables AVANT de les utiliser
//------------------------------------------------------------//

$salle = !empty($_POST['titre']) ? $_POST['titre']: NULL;
$etoile = !empty($_POST['number_etoile']) ? $_POST['number_etoile']: 0;
$event = !empty($_POST['event']) ? $_POST['event']: NULL;
$place = !empty($_POST['place_salle']) ? $_POST['place_salle']: 0;
$prix_min = !empty($_POST['prix_min']) ? $_POST['prix_min']: 0;
$prix_max = !empty($_POST['prix_max']) ? $_POST['prix_max']: 0;
$wilaya = !empty($_POST['choix']) ? $_POST['choix']: NULL;
 $option_salle = isset($_POST['option_salle']) ? $_POST['option_salle'] : null;
//------------------------------------------------------------//
// Traitement du SUBMIT
//------------------------------------------------------------//
$strsalle  = !empty($salle)  ? " OR nom_salle =  '$salle'  " : "";
$stretoile = !empty($etoile) ? " OR nbre_etoile ='$etoile' " : "";
$strplace  = !empty($place)  ? " OR nbre_place = '$place'  " : "";
$strevenet = !empty($event)  ? " OR event like     '$event%'  " : "";
$strwilaya = !empty($wilaya)  ? " OR designation_wilaya  like     '$wilaya'  " : "";

  $message='';
if( isset($_POST['submit'])) {

$value = implode(',', (array) $option_salle);

$requete = "
                   SELECT DISTINCT  * 
                   FROM annonce A  JOIN wilaya W 
                                   ON A.`code_wilaya` = W.`code_wilaya` 
                   WHERE `Etat_annonce`='1' 
                    AND 
                   (FALSE 
                   $strsalle
                   $stretoile
                   $strplace
                   $strevenet
                   $strwilaya

                    OR
                   (`prix_salle`>='$prix_min' and `prix_salle`<='$prix_max') 
                   OR
                    $value
                   )             
                  ";


     

  $resultat = $conn->query($requete);


  if (!$resultat) {
      printf("Message d'erreur : %s\n", mysqli_error($conn));
  }


  if(mysqli_num_rows($resultat)>0) {
    while ($row = mysqli_fetch_assoc($resultat)) {

	    {
 {

echo  '<div class="work span4">
                   <img src="imagesbd/'. $row["gallerie"] . '" alt="salle" /> 

                    <h4>'.$row['nom_salle'].'</h4>
                    <h4>'.$row['prix_salle'].',00 DZ </h4>
                    <h5> '.$row['event'] .' </h5>
                    <p>'.$row['adresse_salle'].' ,'.$row['designation_wilaya'] .' </p>

		
                    <p> +(213) 0'.$row['tel_fixe'].'  / '.$row['tel_mobile'] .'<p/>

                    <div class="icon-awesome">
                        <a href="imagesbd/'. $row[" rel="nofollow noopener noreferrer" target="_blank"gallerie"] . '"><i class="icon-search"></i></a>
                
                          <a href="afficher_salle_rechercher.php?variable='.$row['id_pub'].'" rel="nofollow noopener noreferrer" target="_blank" "><i class="icon-list-alt"></i></a>
                    
                    </div>
                </div>'; 

     
              }             

}
}

   } else {

     $message= '<div class="alert alert-info">
    <strong>Info!</strong> Aucune résultat a été retourné.
    </div>';
  }
} 
  else {
  $message='<div class="alert alert-danger">
  <strong>Erreur!</strong> php .
  </div>';
}
               ?>
             [https://img-19.ccm2.net/UYZ_KyNLH4qbRRW7CUZvga1c-1E=/fc7be2ef9e1c42b7ad832a859d6b6f8f/ccm-ugc/Capture.PNG [image:https://img-19.ccm2.net/UYZ_KyNLH4qbRRW7CUZvga1c-1E=/fc7be2ef9e1c42b7ad832a859d6b6f8f/ccm-ugc/Capture.PNG|440px||center]|fancy]
Afficher la suite 

17 réponses

Répondre au sujet
yg_be 5226 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention - 16 juil. 2017 à 16:22
0
Utile
12
bonjour, je suggère:
$value = implode(' OR ', (array) $option_salle);

si cela ne fonctionne pas, peux-tu:
- ajouter
echo $requete;
print_r ($_POST);
avant
$resultat = ...

- copier le texte affiché dans le navigateur, et le coller dans le forum, en plus de partager l'image.
yg_be 5226 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 17 juil. 2017 à 10:30
peux-tu montrer ton code avec les echo suggérés en #7, ainsi que ce qu'il affiche?
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 17 juil. 2017 à 10:36
voici le Code php

              <?php
//activation de l'affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display-errors','on');

//------------------------------------------------------------//
// le temps des tests
//------------------------------------------------------------//



//------------------------------------------------------------//
//récupération PROPRE des variables AVANT de les utiliser
//------------------------------------------------------------//

$salle = !empty($_POST['titre']) ? $_POST['titre']: NULL;
$etoile = !empty($_POST['number_etoile']) ? $_POST['number_etoile']: 0;
$event = !empty($_POST['event']) ? $_POST['event']: NULL;
$place = !empty($_POST['place_salle']) ? $_POST['place_salle']: 0;
$prix_min = !empty($_POST['prix_min']) ? $_POST['prix_min']: 0;
$prix_max = !empty($_POST['prix_max']) ? $_POST['prix_max']: 0;
$wilaya = !empty($_POST['choix']) ? $_POST['choix']: NULL;
 $option_salle = isset($_POST['option_salle']) ? $_POST['option_salle'] : null;
//------------------------------------------------------------//
// Traitement du SUBMIT
//------------------------------------------------------------//
$strsalle  = !empty($salle)  ? " OR nom_salle =  '$salle'  " : "";
$stretoile = !empty($etoile) ? " OR nbre_etoile ='$etoile' " : "";
$strplace  = !empty($place)  ? " OR nbre_place = '$place'  " : "";
$strevenet = !empty($event)  ? " OR event like     '$event%'  " : "";
$strwilaya = !empty($wilaya)  ? " OR designation_wilaya  like     '$wilaya'  " : "";

  $message='';
if( isset($_POST['submit'])) {

$value = implode('OR', (array) $option_salle);

$requete = "
                   SELECT DISTINCT  * 
                   FROM annonce A  JOIN wilaya W 
                                   ON A.`code_wilaya` = W.`code_wilaya` 
                   WHERE `Etat_annonce`='1' 
                    AND 
                   (FALSE 
                   $strsalle
                   $stretoile
                   $strplace
                   $strevenet
                   $strwilaya

                    OR
                   (`prix_salle`>='$prix_min' and `prix_salle`<='$prix_max') 
                   OR
                    $value
                   )             
                  ";


 //echo $requete;
//print_r ($_POST);    
echo implode(' OR ', (array) $option_salle);
echo implode('OR', (array) $option_salle);
  $resultat = $conn->query($requete);


  if (!$resultat) {
      printf("Message d'erreur : %s\n", mysqli_error($conn));
  }


  if(mysqli_num_rows($resultat)>0) {
    while ($row = mysqli_fetch_assoc($resultat)) {

	    {
 {

echo  '<div class="work span4">
                   <img src="imagesbd/'. $row["gallerie"] . '" alt="salle" /> 

                    <h4>'.$row['nom_salle'].'</h4>
                    <h4>'.$row['prix_salle'].',00 DZ </h4>
                    <h5> '.$row['event'] .' </h5>
                    <p>'.$row['adresse_salle'].' ,'.$row['designation_wilaya'] .' </p>

		
                    <p> +(213) 0'.$row['tel_fixe'].'  / '.$row['tel_mobile'] .'<p/>

                    <div class="icon-awesome">
                        <a href="imagesbd/'. $row[" rel="nofollow noopener noreferrer" target="_blank"gallerie"] . '"><i class="icon-search"></i></a>
                
                          <a href="afficher_salle_rechercher.php?variable='.$row['id_pub'].'" rel="nofollow noopener noreferrer" target="_blank" "><i class="icon-list-alt"></i></a>
                    
                    </div>
                </div>'; 

     
              }             

}
}

   } else {

     $message= '<div class="alert alert-info">
    <strong>Info!</strong> Aucune résultat a été retourné.
    </div>';
  }
} 
  else {
  $message='<div class="alert alert-danger">
  <strong>Erreur!</strong> php .
  </div>';
}
               ?>





L'affichage des échos:

camera OR zornacameraORzornaMessage d'erreur : Unknown column 'cameraORzorna' in 'where clause' 
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\Afrahcom\services.php on line 414
Info! Aucune résultat a été retourné.
yg_be 5226 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 17 juil. 2017 à 10:39
vois-tu la différence entre le ' OR ' et le 'OR' dans l'implode?
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 17 juil. 2017 à 10:42
ouii mais il reste toujours un problème
car aucun résultat ne retourne
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 18 juil. 2017 à 16:08
any help
Commenter la réponse de yg_be
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 18 juil. 2017 à 16:08
0
Utile
3
svp est ce que vous pouvez m'aider
yg_be 5226 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention - 18 juil. 2017 à 17:05
il me semble que tu n'as toujours pas fait précisément ce que j'ai suggéré en #1.
Deep_sea > yg_be 5226 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention - 18 juil. 2017 à 19:56
Si jai fais exactement ce que vous avez dit
yg_be 5226 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention > Deep_sea - 18 juil. 2017 à 20:18
as-tu écrit
'OR'
ou
' OR '
?
Commenter la réponse de deep_sea