probleme formulaire de recherche

Répondre
gabi1202
le 30/04/2009 à 23:05
gabi1202
bonjour à toutes et tous
voilà je suis débutant en php et j'adore ça( heu pas être débutant mais le php lol).

Voilà j'ai un petit soucis.
j'ai créer un formulaire de recherche avec 4 champs a remplir voici le code

<form name="recherche_avancee" method="post" action="recherche.php">
<table>
<tr><td>Nom de l'établissement:</td><td><input type="text" name="nom"/></td></tr>
<tr><td>Commune:</td> <td><input type="text" name="commune"/></td></tr>
<tr><td>code postal:</td><td><input type="text" name="cp"/></td></tr>
<tr><td>Type d'établissement:</td><td><input type="text" name="type"/></td></tr>
<tr><td></td><td><input type="submit" name="chercher" value="chercher"/></td></tr>
</table>
</form>

Le problème est que je n'arrive pas à insérer tout les champs ds mon code php.
pour un seul champs je n'ai pas de soucis
voici le code pour mon champs nom par ex:
<?php
if (isset($_POST['nom'])){
mysql_connect("localhost","root","mysql");
mysql_select_db ("belgitopia");

$avance_q = $_POST['nom'];
$avance_sql ="SELECT * FROM recherche WHERE nom LIKE '%$avance_q%'";
$avance_req=mysql_query($avance_sql) or die(mysql_error());
mysql_close();
while($avance=mysql_fetch_array($avance_req)){
?>
<hr id="recherche_haut_hr" style="color: #f7b309;">
<center><img src="<?php echo $avance['images']; ?>" width="500px"></img></center>

<table width="100%">
<tr><td valign="top" width="30%"><h2><?php echo $avance['type_activite']; ?></h2><td width="5%"></td><td valign="top" width="30%"><h2><?php echo $avance['nom']; ?></h2>
<td width="5%"></td><td width="30%"><?php echo $avance['lien_site']; ?></td></tr>
<tr><td valign="top" width="30%" style="border: dotted 1px #f7b309;"><?php echo $avance['descriptions']; ?></td><td width="5%"></td>
<td valign="top" width="30%"><?php echo $avance['tel']; ?> <br/> <?php echo $avance['fax']; ?><br/><?php echo $avance['horaires']; ?></td>
<td width="5%"></td><td valign="top" width="30%"><?php echo $avance['adresse']; ?><br/><?php echo $avance['cp']; ?><br/><?php echo $avance['commune']; ?><br/>
<?php echo $avance['mail']; ?><br/>
<?php //echo $avance['plan_acces']; ?></td>
</tr>
</table>
<?php
}
}
?>

le soucis donc est que je ne sais pas comment faire pour insérer les 3 autres champs ds le code.

après pas mal de recherches, je me résigne à donc faire appel à vous, en espérant que vous pourrez me donner un petit coup de pouce.

Merci a vous :)
Gabi
moogli
le 01/05/2009 à 17:04
moogli
salut,

a tu essayé en "multipliant" les condition like ?

truc like xxx && bidulle like aaaa etc ?

@+
Il en faut peu pour être heureux !!!!!
gabi1202
le 01/05/2009 à 17:55
gabi1202
Hello,
Merci de ta réponse j'ai essayer comme ceci

<?php
if (isset($_POST['nom']));
if (isset($_POST['commune']));
if (isset($_POST['cp']));
if (isset($_POST['type']));
mysql_connect("localhost","root","mysql");
mysql_select_db ("belgitopia");

$avance_nom = $_POST['nom'];
$avance_commune = $_POST['commune'];
$avance_cp = $_POST['cp'];
$avance_type = $_POST['type'];
$avance_sql ="SELECT * FROM recherche WHERE nom LIKE '%$avance_nom%' AND commune LIKE '%$avance_commune%' AND cp LIKE '%$avance_cp%' AND type_activite '%$avance_type%'";
$avance_req=mysql_query($avance_sql) or die(mysql_error());
mysql_close();
while($avance=mysql_fetch_array($avance_req)){
?>
<hr id="recherche_haut_hr" style="color: #f7b309;">
<center><img src="<?php echo $avance['images']; ?>" width="500px"></img></center>

<table width="100%">
<tr><td valign="top" width="30%"><h2><?php echo $avance['type_activite']; ?></h2><td width="5%"></td><td valign="top" width="30%"><h2><?php echo $avance['nom']; ?></h2>
<td width="5%"></td><td width="30%"><?php echo $avance['lien_site']; ?></td></tr>
<tr><td valign="top" width="30%" style="border: dotted 1px #f7b309;"><?php echo $avance['descriptions']; ?></td><td width="5%"></td>
<td valign="top" width="30%"><?php echo $avance['tel']; ?><br/><?php echo $avance['fax']; ?><br/><?php echo $avance['horaires']; ?></td>
<td width="5%"></td><td valign="top" width="30%"><?php echo $avance['adresse']; ?><br/><?php echo $avance['cp']; ?><br/><?php echo $avance['commune']; ?><br/>
<?php echo $avance['mail']; ?><br/>
<?php //echo $avance['plan_acces'];?></td>
</tr>
</table>
<?php
}

?>


Mais ca ne fonctionne pas il me met ces erreur:

Notice: Undefined index: nom in E:\LST\EasyPHP 3.0\www\LST creation\belgitopia\recherche.php on line 117

Notice: Undefined index: commune in E:\LST\EasyPHP 3.0\www\LST creation\belgitopia\recherche.php on line 118

Notice: Undefined index: cp in E:\LST\EasyPHP 3.0\www\LST creation\belgitopia\recherche.php on line 119

Notice: Undefined index: type in E:\LST\EasyPHP 3.0\www\LST creation\belgitopia\recherche.php on line 120
Erreur de syntaxe près de ''%%'' à la ligne 1

comme je l'ai dis je débute en php c'est pas encore évident tout ça pour moi.

En espérant que tu pourras encore essayer de m'aider :)
Gabi
gabi1202
le 01/05/2009 à 18:16
gabi1202
Voila enfin ça fonctionne
Merci a toi pour le petit coup de pouce.
je ne sais pas si c'est la meilleur façon de le faire mais au moins cela fonctionne très bien.
si il y a des critiques a faire je suis pret à les lire car je demande pas mieux d'apprendre.

voici le code
<?php
if (isset($_POST['nom'])){
if (isset($_POST['commune'])){
if (isset($_POST['cp'])){
if (isset($_POST['type'])){
mysql_connect("localhost","root","mysql");
mysql_select_db ("belgitopia");

$avance_nom = $_POST['nom'];
$avance_commune = $_POST['commune'];
$avance_cp = $_POST['cp'];
$avance_type = $_POST['type'];
$avance_sql ="SELECT * FROM recherche WHERE nom LIKE '%$avance_nom%' AND commune LIKE '%$avance_commune%' AND cp LIKE '%$avance_cp%' AND type_activite LIKE '%$avance_type%'";
$avance_req=mysql_query($avance_sql) or die(mysql_error());
mysql_close();
while($avance=mysql_fetch_array($avance_req)){
?>
<hr id="recherche_haut_hr" style="color: #f7b309;">
<center><img src="<?php echo $avance['images']; ?>" width="500px"></img></center>

<table width="100%">
<tr><td valign="top" width="30%"><h2><?php echo $avance['type_activite']; ?></h2><td width="5%"></td><td valign="top" width="30%"><h2><?php echo $avance['nom']; ?></h2>
<td width="5%"></td><td width="30%"><?php echo $avance['lien_site']; ?></td></tr>
<tr><td valign="top" width="30%" style="border: dotted 1px #f7b309;"><?php echo $avance['descriptions']; ?></td><td width="5%"></td>
<td valign="top" width="30%"><?php echo $avance['tel']; ?><br/><?php echo $avance['fax']; ?><br/><?php echo $avance['horaires']; ?></td>
<td width="5%"></td><td valign="top" width="30%"><?php echo $avance['adresse']; ?><br/><?php echo $avance['cp']; ?><br/><?php echo $avance['commune']; ?><br/>
<?php echo $avance['mail']; ?><br/>
<?php //echo $avance['plan_acces'];?></td>
</tr>
</table>
<?php
}
}
}
}
}

?>


Encore merci de ton aide :)
Gabi
moogli
le 01/05/2009 à 19:31
moogli
de rien

essai de penser aux balises pour le code ;)

@+
Il en faut peu pour être heureux !!!!!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours