Une condition qui ne fonctionne pas

Fermé
deathrace - 20 mai 2011 à 23:42
 Magicite - 21 mai 2011 à 18:30
Bonjour,

j'ai créé deux petits formulaires tres simple que voici:

<table width="500px" border="0" cellpadding="0" cellspacing="0"  id="id-form">
	<form method="post" action="voircitations.php?recherche=auteur">
	<tr><th>Rechercher par auteur: </th><th> <input type="text" name="test" value="Auteur"></th><th><input type="submit" value="Envoyer" class="form-submit" /></th></td></tr>
	</form>
	<form method="post" action="voircitations.php?recherche=difficulte">
	<tr><th>Rechercher par difficulté: </th><th> <input type="text" name="difficulte" value="Diffilculté"></th><th> <input type="submit" value="Envoyer" class="form-submit" /></th></td></tr>
	</form>
</table>


J'ai ainsi créé mon code php de la facon suivante:

<?php if(isset($_GET['recherche']) AND $_GET['recherche'] == 'auteur')
		{
			$req = $bdd->prepare('SELECT * FROM citations WHERE reponsevraie=?');
			$req->execute(array($_POST['test']));
			unset($_POST);
		}
			if(isset($_GET['recherche']) AND $_GET['recherche'] == 'difficulte')
				{ 
					$req = $bdd->prepare('SELECT * FROM citations WHERE difficulte=?');
					$req->execute(array($_POST['difficulte']));
					unset($_POST);
				}
				else
					{
$req = $bdd->prepare('SELECT * FROM citations');
				$req->execute(array());
					}
				while($citation = $req->fetch()){
?>


Lorsque je fais une recherche par difficulte, le résultat est parfait. Je n'affiche que ce que je souhaite. Lorsque je fais une recherche par auteur, malheureusement, toutes les citaions sont affichées. Il n'y a aucun tri de fait.

Pourriez vous m'aider s'il vous plait a trouver d'ou vient le probléme ?


1 réponse

Yo,

A mon avis le problème vient de la requête, essayez de la faire directement dans l'interface du gestionnaire de la base pour avoir une idée du résultat.

SELECT * FROM citations WHERE reponsevraie=?'
Le "?" correspond à quoi? une variable? La requête cherches tous les résultats où le champ reponsevraie vaut ? . Donc le critère auteur n'est pas pris en compte.
Essayez avec un GROUP BY ou en affinant la recherche (AND WHERE auteur=$nom_auteur), affichez vos tableaux de résultats php avec un print_r pour voir les résultats avant de les afficher.
0