Aide pour code formulaire php/base de données

Marjory Messages postés 7 Statut Membre -  
Marjory Messages postés 7 Statut Membre -
Bonjour,

J'ai créé un code en php pour un formulaire de recherche.
Ce code marche très bien avec ma base de données.

Par contre, ma question est :

Comment faire pour rajouter une ligne "indifférent" à chaque case? En fait, rajouter "indifférent", je sais faire, je devrais plutôt demander :
Quel code rajouter pour que cela me donne tous les champs possible lorsqu'"indifférent" est notifié?

S'il vous faut aussi le code de ma 2eme page, dites-le moi.

Merci pour votre aide :-)

Marjorie

<form action="reponse.php" method="post">
<fieldset>
<legend class="titre"></legend>
<legend class="titre">Recherche</legend>
<table width="277" border="0" align="center" cellpadding="0" cellspacing="5" bordercolor="#FFFFFF">
<tr>
<td width="277" height="32"><div align="center">
<label for="nom"><span class="textetableau">Référence : </span></label>
<span class="textetableau"></span></span>
<input name="ref" type="text" class="liste" id="ref" size="20" maxlength="20" />
</div></td>
</tr>
<tr>
<td height="32"><div align="center"><span class="textetableau">Ville :
<select name="ville" size="1" class="liste" id="ville">
<option value="Carcassonne">Carcassonne</option>
<option value="Narbonne">Narbonne</option>
</select>
</span> </div></td>
</tr>
<tr>
<td height="37"><div align="center">
<p><span class="textetableau">Type : </span>
<select name="type" size="1" class="liste" id="type">
<option value="Maison">Maison</option>
<option value="Appartement">Appartement</option>
</select>
</p>
<p><span class="textetableau">Animaux acceptés :
</span>
<input name="checkbox" type="checkbox" class="liste" value="checkbox" />
</p>
</div></td>
</tr>
<tr>
<td><div align="center">
<p>
<input name="Submit" type="submit" class="textetableau" value="Envoyer" />
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. Alain42
     
    Je suppose que tu veux mettre indifferent dans tes listes <select ?

    Alors tu testes dans ton script de traitement lorsque tu reçoit indifférent, dans ta requette mysql tu mets WHERE champ LIKE '%'

    (vas voir sur le site Mysql pour plus de précisions) de mémoire je ne me souviens plus trop de la syntaxe
    0
  2. Marjorie
     
    Tout d'abord, merci pour ta réponse :-)

    Effectivement, je voudrais mettre "indifférent" dans mes listes "select".

    J'ai testé:
    $reponse = mysql_query("SELECT * FROM gites WHERE ville LIKE ='%$ville%' AND type='$type'") or die(mysql_error()); // Requête SQL

    Mais ça me dit ça :

    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 '='%Cagnes sur Mer%' AND type='Maison'' at line 1

    Je comprend bien que j'ai une erreur de syntaxe :-p. Je continu de chercher mais vos avis sont les bienvenus !

    Soyez indulgents, ça fait 1 mois et demi que je ne me suis pas replongée dans les codes!

    Marjorie
    0
    1. Marjorie
       
      J'ai essayé avec ça :

      $reponse = mysql_query("SELECT * FROM gites WHERE ville LIKE ville='%$ville%' AND type='$type'") or die(mysql_error()); // Requête SQL

      Et ça ne me trouve aucune réponse, ça me dit "aucune réponse ne correspond", la phrase que je fais s'afficher quand il n'y a psa de réponse.

      Au moins, ça ne me donne plus d'erreur de syntaxe. Mais je ne vois pas où corriger.

      Je vous met en-dessous le code de ma 2eme page:


      $reponse = mysql_query("SELECT * FROM gites WHERE ville LIKE ville='%$ville%' AND type='$type'") or die(mysql_error());

      if ($donnees = mysql_fetch_assoc($reponse)){
      do {

      ?>
      </span></p>
      <fieldset><table width="651" height="114" border="0" align="center" cellpadding="0" cellspacing="2">
      <tr>
      <td width="361"><span class="texte">Référence : <?php echo $donnees['ref']; ?></span><span class="Style1"><br />
      </span><span class="texte">Ville : <?php echo $donnees['ville']; ?></span></td>
      <td width="290"><span class="texte">Type : <?php echo $donnees['type']; ?> </tr>
      <tr>
      <td colspan="2"><span class="texte">Description : <?php echo $donnees['description']; ?></span></td>
      </tr>
      </table></fieldset>
      <p><span class="Style1"><br />
      <br />
      <?php
      } while ($donnees=mysql_fetch_assoc($reponse));
      } else {
      ?>
      </span></p>
      <span class="Style1">
      <div align="center" class="texte">Il n'y a pas de réponse à votre recherche</div>
      <?php
      }

      mysql_close(); // Déconnexion de MySQL
      ?>
      </span></span>
      </body>
      </html>
      0
    2. Alain42
       
      Essayes plutôt:

      $reponse = mysql_query("SELECT * FROM gites WHERE ville LIKE '%' AND type='$type'")



      Mais il faut que tu fasses trois requettes:

      if($_POST['ville']=='Indifferent" && $_POST['type']!='Indifferent"){
      $reponse = mysql_query("SELECT * FROM gites WHERE ville LIKE '%' AND type='$type'");
      }

      if($_POST['ville']!='Indifferent" && $_POST['type']=='Indifferent"){
      $reponse = mysql_query("SELECT * FROM gites WHERE ville='$ville' AND type LIKE '%' ");
      }

      if($_POST['ville']!='Indifferent" && $_POST['type']!='Indifferent"){
      $reponse = mysql_query("SELECT * FROM gites WHERE ville='$ville' AND type='$type'");
      }

      % est un caractère "jocker"
      0
    3. Marjorie > Alain42
       
      Merci pour le code, je l'ai inséré, mais ça me dit ça :

      Parse error: syntax error, unexpected T_STRING in /home.13/monsite/www/reponse_gite.php on line 12

      Et la ligne 12, c'est ça:
      if($_POST['ville']=='Indifferent" && $_POST['type']!='Indifferent"){

      Avez-vous une idée? :-(
      0
    4. Alain42 > Alain42
       
      Désolé mais c'est pour voir si tu suivais.

      j'ai un peu mélangé involontairement bien sur les simples quotes ' et les doubles quotes "

      if($_POST['ville']=='Indifferent" && $_POST['type']!='Indifferent")


      mets:

      if($_POST['ville']=="Indifferent" && $_POST['type']!="Indifferent")


      A bientôt !
      0
    5. Marjory Messages postés 7 Statut Membre > Alain42
       
      J'ai rectifié, mais ça me dit encore ça :

      Parse error: syntax error, unexpected '}' in /home.13/monsite/www/reponse_gite.php on line 14


      La ligne 14, c'est juste une accolade !

      if($_POST['ville']=="Indifférent" && $_POST['type']!="Indifférent")
      $reponse = mysql_query("SELECT * FROM gites WHERE ville LIKE '%' AND type='$type'");
      } ......................................................................................................................LIGNE 14


      Je ne comprend vraiment pas l'erreur (dès fois, elle est juste sous nos yeux et on ne voit rien...)



      un bout de mon code :

      mysql_connect("mysql5-2", "monsite", "****")or die('Erreur de connexion');
      mysql_select_db("****") or die('Base inexistante');


      if($_POST['ville']=="Indifférent" && $_POST['type']!="Indifférent")
      $reponse = mysql_query("SELECT * FROM gites WHERE ville LIKE '%' AND type='$type'");
      }

      if($_POST['ville']!="Indifférent" && $_POST['type']=="Indifférent"){
      $reponse = mysql_query("SELECT * FROM gites WHERE ville='$ville' AND type LIKE '%'");
      }

      if($_POST['ville']!="Indifférent" && $_POST['type']!="Indifférent"){
      $reponse = mysql_query("SELECT * FROM gites WHERE ville='$ville' AND type='$type'");
      }


      if ($donnees = mysql_fetch_assoc($reponse)){
      do {
      0
  3. Marjory Messages postés 7 Statut Membre
     
    AIE ! J'ai parlé trop vite !
    J'ai une nouvelle erreur quand je fais "Indifférent" dans ville et "Indifférent" dans type, pour avoir la totalité de ma liste qui s'affiche.

    Ca me dit :
    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home.13/monsite/www/reponse_gite.php on line 27

    Ma ligne 27 comprend ma boucle:

    if($_POST['ville']!="Indifférent" && $_POST['type']!="Indifférent"){
    $reponse = mysql_query("SELECT * FROM gites WHERE ville='$ville' AND type='$type'");
    }

    // On fait une boucle pour lister tout ce que contient la table :

    if ($donnees = mysql_fetch_assoc($reponse)){............................................................Ma ligne 27
    do {
    0
  4. Alain42
     
    Essayes avec mysql_fetch_assoc(...)
    0
    1. Marjory Messages postés 7 Statut Membre
       
      Heu... C'est pas ce que j'ai mis déjà?
      0
    2. Alain42
       
      mysql_fetch_array() je suis fatigué décidément !
      0
    3. Marjory Messages postés 7 Statut Membre
       
      Non, j'ai toujours:

      Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home.13/monsite/www/reponse_gite.php on line 27
      0
    4. Alain42
       
      Remplaces mysql_fetch_assoc
      par
      mysql_fetch_array
      0
      1. Marjory Messages postés 7 Statut Membre > Alain42
         
        Non, j'ai toujours :

        Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home.13/monsite/www/reponse_gite.php on line 27

        Je continue à chercher... :-)
        0