Faire une recherhe dans une BD MySQL avec plusieur critere ?

Eléphanteau du PHP | 15 Messages

14 déc. 2005, 19:56

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

Mammouth du PHP | 1776 Messages

14 déc. 2005, 20:02

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

Eléphant du PHP | 71 Messages

14 déc. 2005, 20:02

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>'; }

Eléphanteau du PHP | 15 Messages

14 déc. 2005, 20:07

si un champ est vide, la requete n'est pas correct aussi??

Eléphanteau du PHP | 15 Messages

14 déc. 2005, 20:14

<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>

Eléphanteau du PHP | 15 Messages

14 déc. 2005, 20:16

$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");
			}

Eléphant du PHP | 71 Messages

14 déc. 2005, 21:04

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