Php my sql [Résolu/Fermé]

Signaler
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020
-
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020
-
Bonjour,

j'ai rencontré un problème avec cette requête:
<?php

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

//------------------------------------------------------------//
// le temps des tests
//------------------------------------------------------------//
echo "<pre> Variable POST = ";
print_r($_POST);
echo "</pre>";

//------------------------------------------------------------//
//récupération PROPRE des variables AVANT de les utiliser
//------------------------------------------------------------//
$salle = !empty($_POST['titre']) ? $_POST['titre']: NULL;
$etoile = !empty($_POST['etoile']) ? $_POST['etoile']: NULL;
$event = !empty($_POST['event']) ? $_POST['event']: NULL;
$place = !empty($_POST['place']) ? $_POST['place']: NULL;
$prix = !empty($_POST['prix']) ? $_POST['prix']: NULL;
$wilaya = !empty($_POST['choix']) ? $_POST['choix']: NULL;
$option = !empty($_POST['option_salle']) ? $_POST['option_salle']: NULL;


//------------------------------------------------------------//
// Traitement du SUBMIT
//------------------------------------------------------------//
if( isset($_POST['submit'])) {

  $requete = "
                   SELECT * 
                   FROM annonce A ,wilaya W 
                   WHERE A.`code_wilaya` = W.`code_wilaya` 
                   AND `Etat_annonce`='1' 
                   and ( 
                   (`nom_salle` LIKE '$salle ' ) 
                   or 
                   (`prix_salle`>=$prix and `prix_salle`<=$prix) 
                   or 
                   (`nbre_etoile` =$etoile )
                   or 
                   (`nbre_place` =$place) 
                   or 
                   (`designation_wilaya` like '$wilaya')
                     )

   ";
     

  $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="icon-awesome">
              <img src="imagesbd/'. $row["gallerie"] . '" alt="salle" />
              </div>
              <h3>'.$row['nom_salle'].'</h3>

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



      }

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



aucune résultat ni retourné malgré j'ai essayé la requête dans MYSQL elle marche bien , une fois j’exécute sur mon site , ces erreurs apparaît :

Variable POST = Array
(
[titre] => fériel
[choix] => Chlef
[number_etoile] => 4
[event] => mariage
[place_salle] => 350
[prix] => 200000
[submit] => Filtrer
)
Message d'erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') or (`nbre_place` =) ' at line 10
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 404
Info! Aucune résultat a été retourné.


EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).

Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
Jordane45

7 réponses

Messages postés
8319
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
1 469
salut,

si tu entoures tes variables php dans ta requêtes de quotes (apostrophe), ça devrait aller mieux
Messages postés
13992
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 janvier 2021
787
bjr, peut-être en ajoutant
echo $requete;
pour mieux comprendre?
as-tu remarqué que $_POST['etoile'] est absent?
Messages postés
31119
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 200
Bonjour,

Dans ta requête :
 $requete = "
                   SELECT * 
                   FROM annonce A ,wilaya W 
                   WHERE A.`code_wilaya` = W.`code_wilaya` 
                   AND `Etat_annonce`='1' 
                   and ( 
                   (`nom_salle` LIKE '$salle ' ) 
                   or 
                   (`prix_salle`>=$prix and `prix_salle`<=$prix) 
                   or 
                   (`nbre_etoile` =$etoile )
                   or 
                   (`nbre_place` =$place) 
                   or 
                   (`designation_wilaya` like '$wilaya')
                     )

il y a plusieurs soucis .....

Déjà : lorsqu'on utilise un LIKE c'est pour le faire avec des "jokers"
par exemple :
// commence par $salle
`nom_salle` LIKE '$salle%' 

// contient $salle
`nom_salle` LIKE '$salle%' 

// se termine par $salle
`nom_salle` LIKE '%$salle' 


Actuellement... non seulement tu n'as pas '%' mais tu y as un espace en trop :
`nom_salle` LIKE '$salle '
</code>

Ensuite :
`prix_salle`>=$prix and `prix_salle`<=$prix

Tu m'expliques comment un prix peut être à la fois supérieur et inférieur en même temps ???
Cette ligne se traduirait (en l'état) de cette façon :
`prix_salle`=$prix 



Et enfin... comme te l'ont dit les autres ... il faut mettre TOUTES tes variables entre QUOTES dans ta requête
 (`prix_salle`>='$prix' OR `prix_salle`<='$prix') 
                   or 
                   (`nbre_etoile` ='$etoile' )
                   or 
                   (`nbre_place` ='$place') 

Messages postés
31119
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 200
Ah tiens... c'est bizarre .... une partie de mes remarques t'avais déjà été faites dans une de tes discussions précédente ... ici : https://forums.commentcamarche.net/forum/affich-34595582-my-sql#7

Il serait bien de tenir compte de nos remarque avant d'ouvrir des discussions en doublon !!!

PS: Merci de mettre la précédente question en RESOLU.
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

(`prix_salle`>='$prix_min' and `prix_salle`<='$prix_max') on utilise le Et car je veux que le prix saisi sera entre les 2 intervalle min et max
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

Le problème jusque j'essai champs par champs il fait le filtrage et les résultat s'affiche correctement mais lorsque je choisi plusieurs critère il ya un affichage de tous les enregistrements
if( isset($_POST['submit'])) {

$requete = "
SELECT *
FROM annonce A ,wilaya W
WHERE A.`code_wilaya` = W.`code_wilaya`
AND `Etat_annonce`='1'
and (
(`nom_salle` LIKE '$salle%' )
or
(`prix_salle`>='$prix_min' and `prix_salle`<='$prix_max')

or
(`event` LIKE '$event' )
or
(`nbre_etoile` = '$etoile')
or
(`nbre_place` ='$place')
or
(`designation_wilaya` like '$wilaya')
)

";
Messages postés
13992
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 janvier 2021
787
deux choses:
1) peux-tu partager ce qu'affiche
echo $requete;
?
2) es-tu certain de vouloir "or" dans ta requête? que souhaites-tu obtenir quand tu choisis plusieurs critères? ton programme sélectionne tous les enregistrements qui répondent à au moins un critère.
Messages postés
31119
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 200
Mais....Eureka .. j'ai compris quel était ton souci ....
EN fait .. il faut construire ta requête en fonction des champs qui sont remplis ou non....

Par exemple :


$strsalle = !empty($salle) ? " AND nom_salle = '$salle' " : "";
$stretoile = !empty($etoile ) ? " AND nbre_etoile = '$etoile ' " : "";
$strplace = !empty($place) ? " AND nbre_place = '$place' " : "";

$requete = " SELECT * 
                   FROM annonce A ,wilaya W 
                   WHERE A.`code_wilaya` = W.`code_wilaya` 
                   AND `Etat_annonce`='1' 
                   $strsalle
                   $stretoile
                   $strplace
                  ";
echo $requete;


Amuses toi à remplir ou non tes champs "salle" "nombre d'étoiles" et nombre de places ... puis regarde ce que donne le écho de ta requete...

Tu verras qu'en fonction des champs que tu auras remplis (ou non) la requête s'adaptera et t'affichera uniquement les résultats en fonction des critères voulus.


Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

elle ne retourne rien le ECHO
SELECT * FROM annonce A ,wilaya W WHERE A.`code_wilaya` = W.`code_wilaya` AND `Etat_annonce`='1'

je veux afficher les résultat selon les critères des users saisis et c'est pas une obligations que tous les champs doivent être remplis
Messages postés
31119
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 200 >
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

je veux afficher les résultat selon les critères des users saisis et c'est pas une obligations que tous les champs doivent être remplis

Donc c'est bien ce que j'ai compris et que j'ai traduit par le code que je t'ai donné juste avant ....

elle ne retourne rien le ECHO
SELECT * FROM annonce A ,wilaya W WHERE A.`code_wilaya` = W.`code_wilaya` AND `Etat_annonce`='1'

Tu peux nous montrer ton code modifié ????

Peux tu également ajouter, au début de ton code, un
print_r($_POST);
et nous dire ce qu'il retourne
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

j'ai appliqué ça il ne récupére pâs les 3 champs nom salle nombre étoile et le nombre des places
Messages postés
31119
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 200 >
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

Tu as appliqué le code ....... en mettant le nom de TES variables ???
Comme déjà dit ici : https://forums.commentcamarche.net/forum/affich-34615059-php-my-sql#13
Messages postés
13992
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 janvier 2021
787
si j'en crois le message de départ:
Variable POST = Array
(
[titre] => fériel
[choix] => Chlef
[number_etoile] => 4
[event] => mariage
[place_salle] => 350
[prix] => 200000
[submit] => Filtrer
)
je te rappelle ma remarque en #2:
as-tu remarqué que $_POST['etoile'] est absent?
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

j'ai pas compris elle n'est pas absente !!
Messages postés
31119
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 200 >
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

La variable POST se nomme : number_etoile et non "etoile" comme tu l'as écris dans le code....
Idem pour la variable place ... => Dans ton POST c'est : place_salle

....
Encore du cafouillage dans le code .....
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

ouii j'ai corrigé ça suite a votre remarque la derniére fois
le probléme c pas a ce niveau
 <div class="portfolio container">
<div class="portfolio-title">
<h4 style="font-style: italic;color: #c6526b;font-family:Times;">Les Salles des fêtes retrouvées</h4>
</div>
<div class="row">

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

//------------------------------------------------------------//
// le temps des tests
//------------------------------------------------------------//
echo "<pre> Variable POST = ";
print_r($_POST);
echo "</pre>";



//------------------------------------------------------------//
//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 = !empty($_POST['option_salle']) ? $_POST['option_salle']: NULL;


//------------------------------------------------------------//
// Traitement du SUBMIT
//------------------------------------------------------------//
if( isset($_POST['submit'])) {

$requete = "
SELECT *
FROM annonce A ,wilaya W
WHERE A.`code_wilaya` = W.`code_wilaya`
AND `Etat_annonce`='1'
and (

(`nom_salle` LIKE '$salle%' )
AND
(`prix_salle`>='$prix_min' and `prix_salle`<='$prix_max')
/*
AND
(`event` LIKE '$event' )
AND
(`nbre_etoile` = '$etoile')
AND
(`nbre_place` ='$place')
AND
(`designation_wilaya` like '$wilaya')
AND

(`parking` like '$option')
AND
(`traiteur` like '$option')
AND
(`serveur`like '$option')
AND
(`diner` like '$option')
AND
(`soiree` like '$option')
AND
(`boisson` like '$option')
AND
(`salee` like '$option')
AND
(`dj` like '$option')
AND
(`decoration` like '$option')
AND
(`camera` like '$option')
AND
(`zorna` like '$option')
AND
(`limosine` like '$option')*/
)

";


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



</div>
</div>
Messages postés
31119
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 200 >
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

Avant de te répondre ... je te fais une dernière fois la remarque :

NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code) => En indiquant DANS les balises ... le LANGAGE utilisé !!! (cela permet d'avoir la couleur et les numéros de lignes !!!!!!!!! )

Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

lorsque je teste champs par champs , le derneir message s'est affiché :
    <strong>Info!</strong> Aucune résultat a été retourné.


et lorsque je mis presque tous les champs en commentaires et je teste un par un il ya des résultats
le probléme je veux une affichage selon les critéres saisie quelque soit input ou bien les checkbox
PS : lorsque je choisis plusieurs options (Checkboxes) dans le post le 1er qui est t'afficher els autre no
SVP est ce vous pouvez m'aider
Messages postés
31119
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 200
Donc... maintenant... lorsque je regarde le code que tu viens de nous poster ... je constate que tu n'as pas tenu compte de mon message précédent : https://forums.commentcamarche.net/forum/affich-34615059-php-my-sql#8

Je te laisse apporter cette correction puis nous reposter ton code modifié avant de poursuivre cette discussion !!!!


Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

$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 =      '$event'  " : "";




if( isset($_POST['submit'])) {
$requete = " SELECT * 
                   FROM annonce A ,wilaya W 
                   WHERE A.`code_wilaya` = W.`code_wilaya` 
                   AND `Etat_annonce`='1' 
                   $strsalle
                   $stretoile
                   $strplace
                   $strevenet
                    OR
                   (`designation_wilaya` like '$wilaya')

                  ";
echo $requete;




resultat du echo :
SELECT * FROM annonce A ,wilaya W WHERE A.`code_wilaya` = W.`code_wilaya` AND `Etat_annonce`='1' OR nom_salle = 'fériel' OR nbre_etoile ='3' OR nbre_place = '250' OR (`designation_wilaya` like 'Alger')









 Variable POST = Array
(
    [titre] => fériel
    [choix] => Alger
    [number_etoile] => 3
    [event] => 
    [place_salle] => 250
    [prix_min] => 
    [prix_max] => 
    [submit] => Filtrer
)


le même résultat se répète une infinité de fois
Messages postés
31119
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2021
3 200 >
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

On veut voir le résultat !
On veut un dump de tes tables !!
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

Table annonce
-- Structure de la table `annonce`
--

CREATE TABLE IF NOT EXISTS `annonce` (
  `id_pub` int(11) NOT NULL AUTO_INCREMENT,
  `nom_salle` varchar(50) NOT NULL,
  `nbre_etoile` int(6) NOT NULL,
  `adresse_salle` varchar(50) NOT NULL,
  `date_publication` date NOT NULL,
  `tel_fixe` int(11) NOT NULL,
  `tel_mobile` int(11) NOT NULL,
  `site_web_salle` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `nbre_place` int(11) NOT NULL,
  `prix_salle` float NOT NULL,
  `description` text NOT NULL,
  `parking` tinyint(1) NOT NULL,
  `traiteur` tinyint(1) NOT NULL,
  `serveur` tinyint(1) NOT NULL,
  `diner` tinyint(1) NOT NULL,
  `soiree` tinyint(1) NOT NULL,
  `boisson` tinyint(1) NOT NULL,
  `salee` tinyint(1) NOT NULL,
  `dj` tinyint(1) NOT NULL,
  `decoration` tinyint(1) NOT NULL,
  `camera` tinyint(1) NOT NULL,
  `zorna` tinyint(1) NOT NULL,
  `limosine` tinyint(1) NOT NULL,
  `event` varchar(50) NOT NULL,
  `id_compte` int(11) NOT NULL,
  `id_admin` varchar(20) NOT NULL,
  `adr_ip` varchar(20) NOT NULL,
  `adr_exacte` varchar(50) NOT NULL,
  `code_wilaya` int(11) NOT NULL,
  `gallerie` varchar(250) NOT NULL,
  `Etat_annonce` tinyint(1) NOT NULL,
  `like` int(11) NOT NULL,
  `dislike` int(11) NOT NULL,
  PRIMARY KEY (`id_pub`),
  KEY `id_compte` (`id_compte`,`code_wilaya`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

--
-- Contenu de la table `annonce`
--

INSERT INTO `annonce` (`id_pub`, `nom_salle`, `nbre_etoile`, `adresse_salle`, `date_publication`, `tel_fixe`, `tel_mobile`, `site_web_salle`, `email`, `nbre_place`, `prix_salle`, `description`, `parking`, `traiteur`, `serveur`, `diner`, `soiree`, `boisson`, `salee`, `dj`, `decoration`, `camera`, `zorna`, `limosine`, `event`, `id_compte`, `id_admin`, `adr_ip`, `adr_exacte`, `code_wilaya`, `gallerie`, `Etat_annonce`, `like`, `dislike`) VALUES
(1, 'Ksar Lala Meriem', 5, 'Rue OUALI Mohamed, Bd des 20 mètres ', '2017-02-26', 549293466, 558280118, 'http://www.kasrlallameriem.com/', '', 350, 220000, 'La salle des fêtes, Kasr Lalla Meriem vous accueille dans un cadre chaleureux . L''accès y est très aisé. D'' une capacité de 350 personnes , l'' établissement dispose en outre d''un parking spacieux et privé .La salle est climatisée et aux normes actuelle de sécurité. ', 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 'Cérémonie de mariages, fiançaille', 4, 'DeepSea', '127.0.0.1', 'N° Staoueli Alger', 9, '1.jpg', 1, 0, 0),
(2, 'Dar el Moulouk', 5, ' Route national N°11 Staouali Alger ( Mitoyen TIKI', '2017-03-13', 21393130, 560944125, 'http://www.darelmoulouk.com/', '', 400, 250000, 'Vous rêvez d’un lieu chic, original, grandiose pour organiser votre mariage, exprimez vos envies : La Salle des Fêtes DAR EL MOULOUK est le lieu idéal, située à Staoueli à moins de 2 kilomètres de l’autouroute.La salle des fêtes DARELMOULOUK a été conçue selon des critères de qualité de très haute exigence, de manière à assurer la sérénité à vous et à vos invités.', 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 'Mariages , Fiançailles,Conférences ', 4, 'DeepSea', '127.0.0.1', '', 16, '2.jpg', 1, 0, 0),
(3, 'Fériel', 5, 'lot 185 section 4 amara 2 16000 cherraga Alger', '2017-03-13', 21368333, 662593638, '', '', 500, 220000, 'La salle des fêtes Feriel vous propose de vous accueillir pour vos événements .\r\nLa salle des fêtes Feriel est dotée d’un Parking et d’un voiturier. Le prix varie selon les saisons et les services demandés.', 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, ' mariages, circoncisions, banquets et toutes autre', 4, 'DeepSea', '127.0.0.1', '', 16, '6.jpg', 1, 1, 0),
(4, 'Grand vent', 4, 'N° 1536 route national Dely Ibrahim ', '2017-03-14', 2191061, 661569912, '', 'les_grandsvent@hotmail.fr', 300, 180000, 'L''établissement Les Grands Vents est un endroit familial, convivial et chaleureux qui vous offre toutes les commodités pour passer un moment agréable et sécurisé.', 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 'Mariage , Fiançailles , Naissance ..', 4, 'DeepSea', '127.0.0.1', '', 16, '4.jpg', 1, 20, -2),
(5, 'Nour el Manar', 2, '120, Route Nationale n°11 Cap Caxine Plage du Phar', '2017-03-15', 23216319, 661526525, 'http://www.nourelmanar.com/', '', 350, 75000, 'Nous mettons à votre disposition à la salle des fetes à El Hammamet Alger Algerie notre expérience et notre savoir-faire en terme d’organisation d’événements, elle met entre autre a votre disposition deux salles des fêtes la première pouvant accueillir plus de 350 personnes et une deuxième 100 personnes, la salle des fetes Nour El Manar possède un parking, trois chambres, deux cuisines et une terrasse.', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 'mariage, fiançailles, circoncissions, baptêmes, an', 4, 'DeepSea', '127.0.0.1', '', 16, '5.jpg', 1, 4, -3),
(6, 'Capricorne', 3, '34 RUE GACI AMAR  Staoueli, Alger (16), Algérie', '2017-03-14', 0, 770413332, '', '', 200, 10000, 'Le jour de votre mariage est un moment à chérir. Que vous souhaitiez le transformer en conte de fée ou en événement de prestige, ou que vous préfériez une réception, La salle des fêtes Capricorne à Alger en Algérie est l''endroit ideal pour réaliser votre rêve.', 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 'Mariage , Fiançailles , Anniversaire ,Circoncision', 4, 'DeepSea', '127.0.0.1', '', 16, '3.jpg', 0, 0, 0),
(7, 'Palma Prestig', 3, 'Constantine Cite Daksi, Constantine (25), Algérie', '2017-04-13', 0, 0, '', '', 200, 0, 'Je vous propose nos services de la simple décoration table à la décoration de la salle complète. En fonction de vos envies, nous habillons les chaises, les tables avec nappe accompagné de chemin de table couleur au choix, centre de table, bougeoirs, serviettes et leur décoration, vase martini (composition fleurale) ', 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 'Mariage , Fiançaille ,Circoncision ', 4, 'DeepSea', '', 'Belle vue constantine', 25, '7.jpg', 0, 0, 0),
(8, 'Parc Dounia', 5, 'Rue N° 36 , Achour', '2017-04-14', 661560108, 561919095, '', '', 500, 350000, 'Événement privés les événements privés marquent toujours des étapes de notre vie,que ce soit un mariage , des fiançailles un anniversaire ou tout autre événement ,La salle Dounia Parc se prête à rendre ce jour inoubliable. ', 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 'Mariage , Conférence , Circoncision  ,séminaire', 4, 'DeepSea', 'N° Staoueli ,Alger', '', 16, '8.jpg', 0, 0, 0);

-- --------------------------------------------------------




pour les résultat :
 Variable POST = Array
(
    [titre] => 
    [choix] => Choisir
    [number_etoile] => 
    [event] => 
    [place_salle] => 
    [prix_min] => 75000
    [prix_max] => 200000
    [submit] => Filtrer
)
SELECT DISTINCT * FROM annonce A ,wilaya W WHERE A.`code_wilaya` = W.`code_wilaya` AND `Etat_annonce`='1' OR (`designation_wilaya` like 'Choisir') OR (`prix_salle`>='75000' and `prix_salle`<='200000')


les mémes résultats se répete plusieurs fois plus précismeent les salles des fétes NOUR EL MANAR et les grands vent .


pour ma requete

$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 = !empty($_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 =      '$event'  " : "";




if( isset($_POST['submit'])) {
$requete = " SELECT DISTINCT  * 
                   FROM annonce A ,wilaya W 
                   WHERE A.`code_wilaya` = W.`code_wilaya` 
                   AND `Etat_annonce`='1' 
                   $strsalle
                   $stretoile
                   $strplace
                   $strevenet
                    OR
                   (`designation_wilaya` like '$wilaya')
                    OR
                   (`prix_salle`>='$prix_min' and `prix_salle`<='$prix_max') 
                  ";
echo $requete;


Merci bien
Messages postés
13992
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 janvier 2021
787 >
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

suggestion:
$requete = " SELECT DISTINCT  * 
                   FROM annonce A ,wilaya W 
                   WHERE A.`code_wilaya` = W.`code_wilaya` 
                   AND `Etat_annonce`='1'  AND (FALSE 
                   $strsalle
                   $stretoile
                   $strplace
                   $strevenet
                    OR
                   (`designation_wilaya` like '$wilaya')
                    OR
                   (`prix_salle`>='$prix_min' and `prix_salle`<='$prix_max') 
                   )
                  ";

facile avec, finalement, le résultat d'un ECHO de la variable $requete

c'est la première fois que je comprends l’avantage de séparer la clause ON de la cause WHERE!
donc plutôt:
$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
                    OR
                   (`designation_wilaya` like '$wilaya')
                    OR
                   (`prix_salle`>='$prix_min' and `prix_salle`<='$prix_max') 
                   )
                  ";
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020
>
Messages postés
13992
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 janvier 2021

absolument !
j'ai jamais pensé que le on peut provoqué un problème