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

Fermé
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 - 16 juil. 2017 à 15:57
yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 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]
A voir également:

2 réponses

yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
16 juil. 2017 à 16:22
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.
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
16 juil. 2017 à 16:29
avec le OR ne fonctionne pas
je n'arrive pas a afficher la capture
voici le code affiché
SELECT DISTINCT * FROM annonce A JOIN wilaya W ON A.`code_wilaya` = W.`code_wilaya` WHERE `Etat_annonce`='1' AND (FALSE OR designation_wilaya like 'Choisir' OR (`prix_salle`>='0' and `prix_salle`<='0') OR dinerORcamera ) Array ( [titre] => [choix] => Choisir [number_etoile] => [event] => [place_salle] => [prix_min] => [prix_max] => [option_salle] => Array ( [0] => diner [1] => camera ) [submit] => Filtrer ) Message d'erreur : Unknown column 'dinerORcamera' 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 413
0
yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022
16 juil. 2017 à 16:36
peux-tu partager ton code php modifié?
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
16 juil. 2017 à 16:40
oui bien sure
          
              <?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);    

  $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>';
}
               ?>
             
    <?php 
if(isset($_POST['submit']))
                      echo  $message; 

    ?>     
0
yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022
16 juil. 2017 à 16:53
je te suggère de faire précisément ainsi:
$value = implode(' OR ', (array) $option_salle);
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
16 juil. 2017 à 16:57
j'ai pas compris votre suggestion

j'ai mis cette instructions pour collecter dans méme array tous les checkbox coché
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
18 juil. 2017 à 16:08
svp est ce que vous pouvez m'aider
0
yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
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.
0
Deep_sea > yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
18 juil. 2017 à 19:56
Si jai fais exactement ce que vous avez dit
0
yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476 > Deep_sea
18 juil. 2017 à 20:18
as-tu écrit
'OR'
ou
' OR '
?
0