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... :roll:
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