requette de recherche

Mammouth du PHP | 601 Messages

23 juin 2006, 03:29

Bonjour,
j'essaie de faire une requette de recherche à partir d'une liste déroulante :
Il ne fonctionne pas et je ne comprend pas pourquoi, sa me semble bien écrit ?
A l'envoi j'ai ce genre d'erreur :

Code : Tout sélectionner

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\apachefriends\xampp\htdocs\projet\essai_resultat.php on line 43 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\apachefriends\xampp\htdocs\projet\essai_resultat.php on line 44 Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\apachefriends\xampp\htdocs\projet\essai_resultat.php on line 57
Le lien
http://creatif-web.be/projet/essai_deroulant.php
Le formulaire
<?php 
print <<<EAO
<p>Moteur de recherche :</p>
<form action="essai_resultat.php" method="post">
Choisissez le type de recherche.<br />
  <select name="searchtype"> 
	<option value="leprojet">Projet</option>
	<option value="pseudo">Pseudo</option>
	<option value="facultatif">Information personnel</option>
  </select><br />
  Rentrée un terme :<br />
  <input type='text' name='searchterm'><br />
  <input type='submit' value='Search'>
</form>
EAO;
?>
La page de réception.
<?php 
$searchtype=$_POST['searchtype'];
$searchterm=$_POST['searchterm'];

$searchterm=trim($searchterm);

if (!$searchterm || !$searchtype) {
	print "Vous n'avez pas détailler votre recherche. Veuillez s'il vous plais réessayer encore une fois"; 
	exit();
}
if (!get_magic_quotes_gpc()) {
	$searchtype=addslashes($searchtype);
	$searchterm=addslashes($searchterm);
}
###################################CONNEXION##############
require ("inc/connexion.inc.php");
$lien=mysql_connect(SERVEUR, NOM, PASSE);

// test de connexion au serveur
if (!$lien) {
	echo "Désolé, connexion à " .SERVEUR ." impossible\n"; }
	//echo "merci<br />";
// test de connexion à la base
if (!mysql_select_db(BASE, $lien)) {
	echo "Acces to base denied " .BASE ." impossible\n";
	}	else { //echo "selection de la base ok<br />"; 
	}

if (!mysql_select_db(BASE, $lien)) {
	$erreurbdd=mysql_error();
	return false;
}	
################################### FIN DE CONNEXION #########
$requete="SELECT * FROM eprojet where ".$searchtype." like'%".searchterm."%' ";
$resultat=mysql_query($lien, $requette);
$num_resultat=mysql_num_rows($resultat);
// la fonction mysqli_num_rows() stock le nombre de ligne
for ($i=0; $i<$num_resultat; $i++) {
	// traitement
	$row=mysql_fetch_assoc($resultat);
	echo ($i+1)."/";
	print "<br />Projet : ";
	print stripslashes($row['leprojet'])."<br />";
	print "facultatif (champs facultatif)): ";
	print stripslashes($row['facultatif'])."<br />";
	print "pseudo: ";
	print stripslashes($row['pseudo'])."<br />";
}
mysql_free_result($resultat);
mysql_close($lien);
?>
Merci
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Mammouth du PHP | 1353 Messages

23 juin 2006, 09:05

Petite idée : utiliser le meme nom de variable, a savoir requete et pas requette :) :)

$resultat=mysql_query($lien, $requette);
devrait etre a mon avis :
$resultat=mysql_query($lien, $requete);
Conseil : utilise apres chaque mysql_query() un or die(mysql_error()); Cela pourra te permettre de detecter ce genre d erreurs.
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 601 Messages

23 juin 2006, 17:29

En plein dans le mille, je l'ai écris en fr et je trouvais sa normal, lol.
J'utilise die() d'habitude, mais en essayant une écriture objet je me suis embrouillé, merci pour tout ;-))
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"