Posté : 06-07-2005 16:05
Bonjour,
j'ai un formulaire qui recupere ce qu'à saisit l'utilisateur et qui le compare à la base.
Soit le chmaps ville et remplit donc requete
soit le champs code postal et remplit hop autre requete
soit il a remplit les 2 et là j'ai un soucis
je vous mets mon code et l'erreur ca sera plus simple
<body style="font-family:georgia;">
<SCRIPT language="!javascript!">
<!--
function verif() {
if((document.form.ville.value =='')&&(document.form.postal.value =='')) {
alert('Veuillez saisir une ville ou un code postal');
return false;
}
return true;
}
//-->
</SCRIPT>
<form name="form" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<table width="395" border="0" cellpadding="0" cellspacing="0">
<tr bgcolor="#0A81db">
<td colspan="2"><center>
<b>Recherche d'un professionnel par ville</b>
</center></td>
</tr>
<tr bgcolor="#259BF4">
<td> </td>
<td> </td>
</tr>
<tr bgcolor="#259BF4">
<td width="109">Ville : </td>
<td width="286"><input name="ville" type="text" size="40"> <font color="#FF0000">*</font></td>
</tr>
<tr bgcolor="#259BF4">
<td>Code Postal :</td>
<td><input name="postal" type="text" size="10" maxlength="5"> <font color="#FF0000">*</font></td>
</tr>
<tr bgcolor="#259BF4">
<td> </td>
<td> </td>
</tr>
<tr bgcolor="#259BF4">
<td colspan="2"><center><input type="submit" name="Submit" value="Envoyer" !onclick!=" return verif();"></center></td>
</tr>
<tr >
<td colspan="2"><font color="#FF0000">* remplissez au moins un champs</font></td>
</tr>
</table>
</form>
<?php
error_reporting(E_ALL);
// connexion à la BDD
$db = mysql_connect ($host,$user,$pass) or die ("Connexion impossible");
// choix de la BDD
$connexion = mysql_select_db($bdd,$db) or die("impossible d'acceder à la base $db");
//champs ville remplit
if(isset($_POST['ville']))
{
$ville=$_POST['ville'];
$sql="SELECT nom,adresse,tel,fax,bat,site,C.id_prof,lib_prof,V.id_vil,lib_vil FROM client C,ville V,profession P WHERE V.id_vil=C.id_vil AND C.id_prof=P.id_prof AND V.lib_vil=\"$ville\" ORDER BY nom ";
}
//champs code postal remplit
elseif(isset($_POST['postal']))
{
$postal=$_POST['postal'];
$sql= "SELECT nom,adresse,tel,fax,bat,site,C.id_prof,lib_prof,V.id_vil,code_post FROM client C,ville V,profession P WHERE V.id_vil=C.id_vil AND C.id_prof=P.id_prof AND V.code_post=\"$postal\" ORDER BY nom ";
}
// 2 champs remplit
elseif(isset($_POST['ville']) || isset($_POST['postal']))
{
$ville=$_POST['ville'];
$postal=$_POST['postal'];
$sql= "SELECT nom,adresse,tel,fax,bat,site,C.id_prof,lib_prof,V.id_vil,lib_vil,code_post FROM client C,ville V,profession P WHERE V.id_vil=C.id_vil AND C.id_prof=P.id_prof AND V.code_post=\"$postal\" AND V.lib_vil=\"$ville\" ORDER BY nom ";
}
$result = mysql_query($sql,$db) or die(mysql_error().$sql);
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
while($row = mysql_fetch_array($result))
{
//affichage du resultat
$vil = $row['lib_vil'];
?>
<table width="518" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Profession :</td>
<td><? echo $row['lib_prof'] ?></td>
</tr>
<tr>
<td width="151">Nom : </td>
<td width="357"><? echo $row['nom'] ?></td>
</tr>
<tr>
<td>Adresse :</td>
<td><? echo $row['adresse'] ?></td>
</tr>
<tr>
<td>Ville :</td>
<td><? echo ucfirst(strtolower($vil)) ?></td>
</tr>
<tr>
<td>tel :</td>
<td><? echo $row['tel'] ?></td>
</tr>
<tr>
<td>Fax</td>
<td><? echo $row['fax'] ?></td>
</tr>
<tr>
<td>Site :</td>
<td><? echo $row['site'] ?></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
<?
// on libère le résultat
mysql_free_result($sql);
}
}
else
{ echo "Désolé pas encore de professionnels répertoriés pour cette ville";}
// on ferme la connexion à mysql
mysql_close($db);
?>
voilà l'erreur
Notice: Undefined variable: sql in c:\program files\easyphp1-8\www\jeunes\ville.php on line 80
Notice: Undefined variable: sql in c:\program files\easyphp1-8\www\jeunes\ville.php on line 80
Query est vide.
je comprends d'ou vient le prbl, ca vient de mes accolades fermées apres le if et les elseif avant le :
$result = mysql_query($sql,$db) or die(mysql_error().$sql);
mais je ne vois pas comment faire autrement
merci de votre aide |