Page 1 sur 1

Requete Multi Critères

Posté : 03 déc. 2005, 14:51
par jam'
Bonjour a toute la communauté phpFrance,

Voici mon problème:
Je cherche a faire une recherche sur un table par rapport a 1 ou plusieur critere de recherche que l'utilisateur aura rentré dans un formulaire au préalable.

Voici le code ou se trouve la requete :
<?php
	$NF = $_POST['NF'];
	$AF = $_POST['AF'];
	$NR = $_POST['NR'];
	$NA1 = $_POST['NA1'];
	$NA2 = $_POST['NA2'];
	$NA3 = $_POST['NA2'];

	//connect to the DB and select the "film" database
	$connection = mysql_connect('localhost','admin','admin') or die(mysql_error());
	mysql_select_db('film', $connection) or die(mysql_error());

	//set up the query
	$requete = "SELECT * FROM film WHERE 1=1";
				if($NF!="") $requete .="AND NomFilm = '".$NF."%'";
				if($AF!="") $requete .="AND AnneeFilm = '".$AF."'";
				if($NR!="") $requete .="AND RealFilm = '".$NR."'";
				if($NA1!="") $requete .="AND Acteur1Film = '".$NA1."'";
				if($NA2!="") $requete .="AND Acteur2Film = '".$NA2."'";
				if($NA3!="") $requete .="AND Acteur3Film = '".$NA3."'";
				
			
	//run the query and get the number of affected rows
	$result = mysql_query($requete, $connection) or die('error making query');
	$affected_rows = mysql_num_rows($result);

	//if there's exactly one result, the user is validated. Otherwise, he's invalid
		if($result = mysql_query($requete)) {
			while($ligne = mysql_fetch_row($result)) {
				$nom = $ligne[1];
				$duree = $ligne[2];
				$cat = $ligne[3];
				$annee = $ligne[4];
				$desc = $ligne[5];
				echo "$nom, $duree,  $cat, $annee, $desc <br />";
			}
		} else {
			echo "Erreur de requête de base de données.";
		}
?>
et voici le code du formulaire :


Code : Tout sélectionner

<form name="form1" method="post" action="resultat.php"> Recherche de film ! <br> <br> Nom du film : <input type="text" name="NF"> <br> Ann&eacute;e du film: <input type="text" name="AF"> <br> Type de film : <select name="select"> </select> <br> Réalisateur: <input type="text" name="NR"> <br> Acteur(s) : <input type="text" name="NA1"> <input type="text" name="NA2"> <input type="text" name="NA3"> <br> <br> <input type="submit" name="Valider" value="Envoyer"> <input type="submit" name="Effacer" value="Annuler"> </form>
Le souci c'est que ma requete ne marche pas lorsque la personne entre 1 critere de recherche.

PS: la personne peut recherche la liste des film sur 1 ou plusieurs critères. Donc les champ ne sont pas toujours rempli

D'avance merci

Re: Requete Multi Critères

Posté : 03 déc. 2005, 14:58
par Truc
Salut,
Le souci c'est que ma requete ne marche pas lorsque la personne entre 1 critere de recherche.
Un message d'erreur ? si oui ça aide pour comprendre le probleme.

mais tu peut deja afficher la requete gén érée:
echo $requete;
et verifier la structure.

et donc tu vera certainement que les clauses sont collées les unes aux autres, il faut espacer les concaténation:
$requete .=" AND NomFilm = '".$NF."%' ";
avec un espace en debut et un autre en fin de concaténation.

Posté : 03 déc. 2005, 15:02
par jam'
:oops: Mais quel *** sa marchait pas juste a casue des espace. MErci en tout cas pour cette réponse rapidede ta part. :lol: :lol:

Posté : 03 déc. 2005, 15:17
par Truc
de rien, pense à t'inscrire pour pouvoir mettre le sujet en [Résolu]