Page 1 sur 1
Faire une recherhe dans une BD MySQL avec plusieur critere ?
Posté : 14 déc. 2005, 19:56
par obcstaff
Comment faire pour creer une requete de recherche, par ex dans le formulaire on peut rechercher par ville, par departement, par pseudo...etc
Quelqun peut m'indiquer le code svp???
merci d'avance....
Posté : 14 déc. 2005, 20:02
par DocType
A moins de me tromper, un post similaire existe actuellement...dans les deux trois lignes près du tien...
http://www.phpfrance.com/forums/voir_sujet-12069.php
Posté : 14 déc. 2005, 20:02
par nath-0-0
par exemple
Code : Tout sélectionner
$sql="select from tabase where pseudo=$pseudoduformulair or ville=$villeduformulaire";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
{
echo '<tr>';
echo '<td class="ref">'.$data['ville'].'</td>';
echo '</tr>';
}
rep a nath-0-0
Posté : 14 déc. 2005, 20:07
par obcstaff
si un champ est vide, la requete n'est pas correct aussi??
Voila mon code
Posté : 14 déc. 2005, 20:14
par obcstaff
<form action='recherche2.php' method='post'>
<table>
<tr>
<td>Par pseudo:</td>
<td>
<input type='text' name='pseudo' size='20'>
</td>
</tr>
<tr>
<td>Par ville:</td>
<td>
<input type='text' name='ville' size='20'>
</td>
</tr>
<tr>
<td>Par région:</td>
<td>
<select name='region' size='1' >
<?php
$sql = "SELECT * FROM region";
$result = mysql_query ($sql);
echo("<option selected value=0>...");
while ($result2 = mysql_fetch_object ($result))
{
echo("<option value='$result2->num_region'>$result2->nom_region");
}
?>
</select>
</td>
</tr>
<tr>
<td>Par département</td>
<td>
<select name='departement' size='1' >
<?php
$sql = "SELECT * FROM departement";
$result3 = mysql_query ($sql);
echo("<option selected value=0>...");
while ($result4 = mysql_fetch_object ($result3))
{
echo("<option value='$result4->num_departement'>$result4->nom_departement");
}
?>
</select>
</td>
</tr>
<tr>
<td>Par sexe:</td>
<td><select name='sexe' size='1' >
<option selected value='0'>...
<option value='1'>Homme
<option value='2'>Femme
</select>
</td>
</tr>
</table><br><br>
<input type='submit' name='ok' value='Rechercher'>
</form>
voila la suite, ma requete quoi !?!?
Posté : 14 déc. 2005, 20:16
par obcstaff
$sql = "SELECT * FROM membre,log,sexe
WHERE num_membre = num_log
AND membre.num_sexe = sexe.num_sexe
AND (log.pseudo = '".$_POST['pseudo']."'
OR membre.ville = '".$_POST['ville']."'
OR membre.region = '".$_POST['region']."'
OR membre.departement = '".$_POST['departement']."'
OR sexe.num_sexe = '".$_POST['sexe']."')";
$result = mysql_query ($sql);
while($result2 = mysql_fetch_object ($result))
{
echo("$result2->nom_membre");
}
Posté : 14 déc. 2005, 21:04
par nath-0-0
je te donne un exemple mais avec des et....
Code : Tout sélectionner
$sql = "SELECT `codePostal`, `surfaceHabitable`,`PrixComCompris`,`TitreAnnonce`,`idBien`,";
$sql.=" `description` FROM bien,ville";
$sql.= " WHERE ville.idville = bien.fkville AND";
if ($ef_ref !="")
$sql.= " idBien = '$ef_ref' AND";
if ($ef_surface !="")
$sql.= " surfaceHabitable BETWEEN $ef_surfaceMin AND $ef_surfaceMax AND";
if ($ef_prix !="")
$sql.= " PrixComCompris BETWEEN $ef_prixMin AND $ef_prixMax AND";
if ($ef_ville !="")
$sql.= " codePostal = '$ef_ville' AND";
$sql.= " 1=1;";
mais a la place de 1=1 tu mets un truc impossible du genre 1=2