Aide pour code formulaire php/base de données
Marjory
Messages postés
7
Statut
Membre
-
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" />
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
-
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 -
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-
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> -
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" -
-
-
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 {
-
-
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 { -