My sql [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 ,
je suis entraîne de faire un moteur de recherche qui permet d'établir une comparaison entre les salles des fêtes selon les critères recommandé
une fois j'actualise la page service , un message d'erreur signalé :Erreur! Php
voici le code
<?php
if( isset($_POST['submit']))

{
$salle = $_POST['titre'];
/*
$etoile= $_POST['nbre_etoile'];
$event = $_POST['event'];
$place= $_POST['nbre_place'];
$prix = $_POST['prix_salle'];
  • /

$requete = "SELECT * FROM `annonce` ,`wilaya` WHERE `annonce`.`code_wilaya` = `wilaya`.`code_wilaya` and `Etat_annonce`=1 and `nom_salle` LIKE '$salle' ";
$resultat = $conn->query($requete) or die ('Erreur '.$requete.' '.$conn->error);
if(mysqli_num_rows($resultat)>0)
{
while ($row = mysqli_fetch_assoc($resultat))

{
if( ($prix >= `prix_salle`) and ($prix <= `prix_salle`))
{
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 salle ne correspond a ce prix.
</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>';

}
?>

4 réponses

Messages postés
32
Date d'inscription
mardi 13 janvier 2009
Statut
Membre
Dernière intervention
18 janvier 2018
11
Pouvez-vous détailler un peu plus l'erreur, car nous n'avons pas beaucoup de renseignement sur celle-ci ?
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

Toujours le dernier message qui s'est afficher
echo '<div class="alert alert-danger">
<strong>Erreur!</strong> php .
malgré j'ai essayé une seul condition c'est le nom de la salle
voici le code complet:
Messages postés
32
Date d'inscription
mardi 13 janvier 2009
Statut
Membre
Dernière intervention
18 janvier 2018
11 >
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

Et bien si j'en suis ton code, c'est simplement que la page n'arrive pas à récupérer la variable $_POST['submit'], vérifie donc le formulaire qui est censé envoyer ces données.
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

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

no c'est pas un probléme car j'ai vérifié le name et celui la est correspond au $_POST['submit']
Messages postés
31481
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 février 2021
3 281
Bonjour ..
Déjà Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser à l'avenir... car comme tu vas le voir ci-dessous.. avec la couleur et l'indentation .. le code est beaucoup plus facile à lire.

Donc teste ceci :
<?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;

//------------------------------------------------------------//
// 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%' ";
     

     
  $resultat = $conn->query($requete);;
  if (!$resultat) {
      printf("Message d'erreur : %s\n", mysqli_error($link));
  }

  if(mysqli_num_rows($resultat)>0) {
    while ($row = mysqli_fetch_assoc($resultat)) {
      if( ($prix >= `prix_salle`) and ($prix <= `prix_salle`)){
          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 salle ne correspond a ce prix.
        </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>';
}
?>

Et dis nous ce que ça te donne (colle nous ce que ça t'affiche )
.

Et au passage .... montre nous aussi le code HTML de ton formulaire.
Car comme te l'a dit Ciran28 ... tu n'envoies pas la variable POST['submit'] ...



Messages postés
31481
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 février 2021
3 281
Je pense que tu auras un autre souci ensuite ...
if( ($prix >= `prix_salle`) and ($prix <= `prix_salle`)){


1 - `prix_salle` .. n'est pas un nombre ....
Si tu veux le "prix_salle" issu de la requête .. tu dois écrire :
$row["prix_salle"]


2 - Comment un Prix peut-il être en même temps (tu as utilisé un "AND" ) inférieur ET supérieur à un même nombre ??? ( enfin vu que tu as mis >= et <= ... cette condition pourra tout de même être vrai dans un seul cas ... lorsque ça sera "=" )
Bref.... à la place d'un AND .. utilises un OR !
Messages postés
31481
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 février 2021
3 281
En lisant le code que tu avais mis dans ta question en "doublon" (que je viens de supprimer...) j'ai vu le code de ton bouton :
<button type="button" class="btn btn-danger btn-block" style="border-radius: 12px;" name="submit">Filtrer</button> 

Hors... pour qu'il puisse fonctionner (en validant le formulaire) il faut mettre un type SUBMIT !
par exemple
<input  type="submit" class="btn btn-danger btn-block" style="border-radius: 12px;" name="submit" value="Filtrer" \>
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

même erreur malgré ça j'ai ajouté les autres critères pour tester --> ERREUR a été change et toujours aucune résultat a été retourné
 
<div class="what-we-do container">
            <div class="row">
                <div class="service span12">
                


<?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' like '%$prix%'  
                                                                or 'etoile' =$etoile 
                                                                     or 'event'= '%$event%' 
                                                                       or  'place' =$place
                                                                            or 'designation_wilaya' like '% $wilaya%'
                                                                               or `parking` like '%$option%'
                                                                                   or `traiteur`  like '%$option%'
                                                                                       or  `serveur` like '%$option%'
                                                                                          or  `diner` like '%$option%'
                                                                                             or  `soiree` like '%$option%'
                                                                                                or `boisson` like '%$option%'
                                                                                                    or  `salee` like '%$option%'
                                                                                                       or `dj` like '%$option%'
                                                                                                          or `decoration` like '%$option%'
                                                                                                             or `camera` like '%$option%'
                                                                                                                or `limosine` like '%$option%'
                                                                                                                    or `zorna` like '%$option%'


                                                                             )   ";
     

     
  $resultat = $conn->query($requete);;
  if (!$resultat) {
      printf("Message d'erreur : %s\n", mysqli_error($link));
  }

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

      if( ($prix >= $row["prix_salle"]) and ($prix <= $row["prix_salle"])){
          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 salle ne correspond a ce prix.
        </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>
        </div>




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
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

j'aime pas vos questions
Like pour une chaine de catactére
= pour un nombre
% c a d c'est la valeur correspond a celle stocké dans la base (le cas des strings)
Messages postés
31481
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 février 2021
3 281 >
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

Perdu .....

Tout faut sur tes trois réponses ...

= ... pour une égalité
LIKE pour une approximation ( s'utilise avec le % .... le % servant de caractère jocker )
Par exemple : Est-ce que dans mon champ nom j'ai un nom qui CONTIENT jo .. je vais écrire : nom LIKE '%jo%'
Si je veux que le nom COMMENCE par jo je vais écrire nom LIKE 'jo%'
Et si je veux que le nom se TERMINE par jo .. je vais écrire : nom LIKE '%jo'

Si je veux nom soit égale à jo .. alors je vais utiliser : nom = 'jo'
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

no c 'est pas faux , vous avez expliquer en détails c tous c'ets le méme principe
Messages postés
31481
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 février 2021
3 281 >
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

Heu... tu dois avoir besoin de lunettes
Messages postés
192
Date d'inscription
mardi 10 mai 2016
Statut
Membre
Dernière intervention
12 mai 2020

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

et voila le code html correspond
    <form action="" method="POST">
<div class="services-half-width container">

            <div class="row">
                <div class="services-half-width-text span12">
  <div class="input-group">
  <span class="input-group-addon"><i class="glyphicon glyphicon-certificate"></i></span>
  <input id="titre" type="text" class="form-control" name="titre" placeholder="Nom de la salle des Fêtes ">  
 </div>
<div class="input-group">
<?php
$requete = "SELECT `code_wilaya`,  `designation_wilaya` FROM `wilaya` ";
$resultat = $conn->query($requete) or die ('Erreur '.$requete.' '.$conn->error);
  echo "<select name='choix'>";
echo '<option>Choisir</option>';
if(mysqli_num_rows($resultat)>0)


{
while ($row = mysqli_fetch_assoc($resultat))

 {

  echo'

  <option>'.$row['designation_wilaya'].'</option>';

}


}


else
{
    echo "0 results";
}

echo "</select>";
?>


</div>





<div class="input-group">
  <span class="input-group-addon"><i class="glyphicon glyphicon-star"></i></span>
  <input id="number" type="number" class="form-control" name="number_etoile" placeholder="Nombre d'étoiles">  
</div>


    <div class="input-group">
    <span class="input-group-addon"><i class="glyphicon glyphicon-list-alt"></i></span>
    <input id="event" type="text" class="form-control" name="event" placeholder="Evenement 1 , evenement 2, ..." />
  </div>


  <div class="input-group">
    <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
    <input id="place" type="number" class="form-control" name="place_salle" placeholder="Nombre de place" />
  </div>














 <div class="input-group">
    <span class="input-group-addon"><i class="glyphicon glyphicon-usd"></i></span>
    <input id="prix" type="number" class="form-control" name="prix" placeholder="prix minimun"  pattern="^\d+(\.|\,)\d{2}$"/>
  </div>



<div class="input-group">
    <span class="input-group-addon"><i class="glyphicon glyphicon-usd"></i></span>
    <input id="prix" type="number" class="form-control" name="prix" placeholder="prix maximun"  pattern="^\d+(\.|\,)\d{2}$"/>
  </div>

<div class="input-group">
<label class="label label-default" style="background-color: #c6526b;" id="clickme">Options avancés</label>
</div>



<center>
<table class="table" id="tab">
<thead>
<tr>
<th> </th>
<th> </th>
</tr>
</thead>
<tbody  >
  <tr>
<td><label class="radio-inline"><input type="checkbox" name="option_salle">Parking</label></td>
<td><label class="radio-inline"><input type="checkbox" name="option_salle">Traiteur</label></td>
<td> <label class="radio-inline"><input type="checkbox" name="option_salle">serveur</label></td>
<td><label class="radio-inline"><input type="checkbox" name="option_salle">Diner</label></td>
<td> <label class="radio-inline"><input type="checkbox" name="option_salle">Soirée</label></td>
<td> <label class="radio-inline"><input type="checkbox" name="option_salle">Boisson</label></td>
  </tr>
  <tr>
<td><label class="radio-inline"><input type="checkbox" name="option_salle">Salés</label></td>
<td><label class="radio-inline"><input type="checkbox" name="option_salle">DJ</label></td>
<td><label class="radio-inline"><input type="checkbox" name="option_salle">Décoration</label></td>
<td><label class="radio-inline"><input type="checkbox" name="option_salle">Caméra</label></td>
<td><label class="radio-inline"><input type="checkbox" name="option_salle">Limousine</label></td>
<td><label class="radio-inline"><input type="checkbox" name="option_salle">zorna</label></td>
  </tr>
</tbody>
</table>
</center>



<script type="text/javascript">
var element = document.getElementById("clickme");
var tab = document.getElementById("tab");
element.onclick=function()
{
tab.style.visibility='visible';


};
</script>

                </div>
<input  type="submit" class="btn btn-danger btn-block" style="border-radius: 12px;" name="submit" value="Filtrer" \>
            </div>
</div>
</form>


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