My sql

deep_sea Messages postés 215 Statut Membre -  
deep_sea Messages postés 215 Statut Membre -
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

  1. Ciran28 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   11
     
    Pouvez-vous détailler un peu plus l'erreur, car nous n'avons pas beaucoup de renseignement sur celle-ci ?
    0
    1. deep_sea Messages postés 215 Statut Membre 1
       
      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
      1. Ciran28 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   11 > deep_sea Messages postés 215 Statut Membre
         
        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
    2. deep_sea Messages postés 215 Statut Membre 1
       
      ok je vais voir
      0
    3. deep_sea Messages postés 215 Statut Membre 1
       
      no c'est pas un probléme car j'ai vérifié le name et celui la est correspond au $_POST['submit']
      0
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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
  3. deep_sea Messages postés 215 Statut Membre 1
     
    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
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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
    2. deep_sea Messages postés 215 Statut Membre 1
       
      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
    3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > deep_sea Messages postés 215 Statut Membre
       
      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
    4. deep_sea Messages postés 215 Statut Membre 1
       
      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
    5. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > deep_sea Messages postés 215 Statut Membre
       
      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
  4. deep_sea Messages postés 215 Statut Membre 1
     
    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