My sql

Fermé
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 - 15 mai 2017 à 22:49
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 - 18 mai 2017 à 12:45
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>';

}
?>
A voir également:

4 réponses

Ciran28 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 18 janvier 2018 11
15 mai 2017 à 22:55
Pouvez-vous détailler un peu plus l'erreur, car nous n'avons pas beaucoup de renseignement sur celle-ci ?
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
15 mai 2017 à 23:02
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:
0
Ciran28 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 18 janvier 2018 11 > deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022
15 mai 2017 à 23:20
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.
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
15 mai 2017 à 23:20
ok je vais voir
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
15 mai 2017 à 23:24
no c'est pas un probléme car j'ai vérifié le name et celui la est correspond au $_POST['submit']
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
16 mai 2017 à 00:12
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'] ...



0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié le 16 mai 2017 à 01:54
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 !
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
16 mai 2017 à 01:59
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" \>
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
Modifié le 17 mai 2017 à 18:01
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
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
17 mai 2017 à 18:05
1 - Dans ton fichier .... il n'y a pas la connexion à la bdd

2 - Tu as utilisé $con et $link .... lequel correspond à ta connexion ????
  $resultat = $conn->query($requete);;
  if (!$resultat) {
      printf("Message d'erreur : %s\n", mysqli_error($link));
  }


3 - Que t'affiche le print_r($_POST); ???
Si on te l'a fait ajouté .. c'est pour que tu nous colles son contenu dans le forum !!
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 mai 2017 à 10:37
si il y a ma connexion vers la base de donnée

<?php

include 'includes\db.php';
?>

Voici l'affichage :

Variable POST = Array
(
[titre] => capricorn
[choix] => Laghouat
[number_etoile] => 5
[event] => mariage
[place_salle] => 250
[prix] => 200000
[option_salle] => on
[submit] => Filtrer
)

le problème avec le prix et les options de checkbox

messages d'erreur :
Notice: Undefined variable: link in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\Afrahcom\services.php on line 407

Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\Afrahcom\services.php on line 407
Message d'erreur :
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 410


en plus le message de code: Info! Aucune résultat a été retourné.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022
18 mai 2017 à 10:56
si il y a ma connexion vers la base de donnée

je dois être miro ... je ne la vois pas dans le code que tu as posté....


messages d'erreur :
Notice: Undefined variable: link in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\Afrahcom\services.php on line 407

... ben oui.. c'est bien ce que je te disais ... tu as utilisé $link ET $con ..... LEQUEL correspond à ta connexion ????
(peux tu nous montrer ton code de connexion à ta bdd (en retirant le user/password ) ??


Ensuite.... fais donc un echo de ta variable $requete et montre nous ce que ça donne.
Puis... prends cette requête et teste la DIRECTEMENT dans ta bdd via phpmyadmin pour voir si elle te retourne quelquechose....
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 mai 2017 à 11:07
pour la connexion c 'est $conn et pas $link

Variable POST = Array
(
[titre] => capricorn
[choix] => Tiaret
[number_etoile] => 3
[event] => mariage
[place_salle] => 200
[prix] => 200000
[option_salle] => on
[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 'event'= '%mariage' ' at line 8
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 410
Info! Aucune résultat a été retourné.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022
18 mai 2017 à 11:14
Pourrais tu relire ET suivre TOUT ce que je t'ai marqué précédemment ???
Quel est le contenu de ta variable $requete ??
L'as tu testé DIRECTEMENT dans ta bdd ???
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
Modifié le 17 mai 2017 à 18:00
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
0