Voila mon code jaimerai savoir pourquoi il ne fonctionne pas.c'est une recherche

<?php function search ($reponse) { if (isset($_get['recherche'])) { mysql_connect("localhost","root",""); mysql_connect_db("star wars"); $reponse = mysql_query("select description from personnage where nom=".$_get['recherche'].""); } $i = 0; while ($row=mysql_fetch_object($reponse)) { // incrementation du compteur pour savoir combient il y a de resultat $i++; $resultat = $row->description; echo "resultat(s) ".$i.": ".$resultat; } if ($i == 0) { echo "pas de resultats"; } } ?>

$resultat = $row->description;
je crois que ca il n’aime pas,l’ecriture n’est pas correcte.

mysql_num_rows($mysql_result);
essaie plutot avec ca pour obtenir le nombre de reponses :wink:
Edité le 02/02/2008 à 13:59

Bonjour,

Pour avoir à faire à des spécialistes, tu peux aller demander sur ce site :

www.allhtml.com…

Mais peut-être tu auras aussi des réponses ici… :wink:

pas bien ça
il y as Fracaty en specialiste et bcp d’autres

Pourquoi pas bien ?!!!
Le but c’est de filer un coup de main et de partager ses connaissances, non? De plus je précise qu’il y a peut-être du monde qui connaît ici. Je donne juste une adresse sympa et utile à Clément.

Je ne comprends pas ta réaction Riri…:neutre:

tu peux aussi essayer de simplifier ta requete ou plutot ta fonction

l’exemple suivant est tres simple
SELECT * from MaTable where Champs LIKE %cequejecherche%

cela te fait la recherche sur toute la base ou le ou les champs contiennet ce que tu cherches
apres il te suffit d’afficher les resultats dans un tableau

exemple avec traitment de chaine de caractere


$recherche=strtolower($recherche); // on passe les mots recherchés en minuscules

$mots = str_replace("+", " “, trim($recherche)); // on remplace les + par des espaces
$mots = str_replace(”"", " “, $mots); // on remplace les " par des espaces
$mots = str_replace(”,", " “, $mots); // on remplace les , par des espaces
$mots = str_replace(”:", " “, $mots); // on remplace les : par des espaces
$tab=explode(” " , $mots); // on place les differents mots dans un tableau
$nb=count($tab); // on compte le nbr d’élément du tableau.

$sql="select * from search where mot_cles like “%$tab[0]%” “; //on prépare la requête SQL.
for($i=1 ; $i<$nb; $i++)
{
$sql.=”$operateur mot_cles like “%$tab[$i]%” "; // on boucle pour integrer tous les mots dans la requête
}
mysql_connect($host,$user, $passwd); // on se connecte au serveur
$result = mysql_db_query($db,$sql); // on execute la requête SQL.
if($result)
{
if(mysql_num_rows($result)==0) echo “Pas de Résultat
“; //si il n’y a pas de résultats
else
{
echo “Résultat(s)
”;
while($row = mysql_fetch_array($result))
{
echo $row[“titre”];
$url = $row[“url”];
echo " | < a href=”$url”>$url
";
}
mysql_free_result($result);
}
}
echo “La requete SQL execute est : $sql” ;

voila qui devrait te satisfaire :wink: c’est a ameliorer bien sur
Edité le 02/02/2008 à 14:15

c’était de l’humour :slight_smile:

hey pas de bataille :grrr: non mais de vrai gamin :na:
et ca ne vas pas aider clement1138

Tu mélanges absolument tout et n’importe quoi dans ton code.

Dans un premier temps, tu n’as pas déclaré de formulaire dans ton code HTML. Tes balises doivent être intégrées dans une balise .

Dans un second temps, tu créés une fonction php search que tu essayes d’appeler avec du Javascript. C’est impossible.
Quand tu déclares ta balise , tu spécifies un fichier (PHP pour ton cas) qui doit contenir ta fonction search et effectuer le traitement dessus.

Bon en gros et pour faire simple :

Tu créés un fichier index.html qui contiendra :


<html>
<head>
  <title>Formulaire de recherche</title>
</head>
<body>
<form method="post" action="search.php">
  <input type="text" value="" size="30" name="rechercher" />
  <input type="submit" value="Rechercher" name="submit" />
</form>
</body>
</html>

Un seconde fichier search.php :


<?php
$mot_cle = isset($_POST['rechercher']) ? $_POST['rechercher'] : NULL;

if ( !is_null($mot_cle) )
{
	$connexion = mysql_connect("ton_host","ton_login","ton_mdp");
	mysql_connect_db("star wars");
	$result = mysql_query("SELECT `description` FROM `personnage` WHERE `nom` = '$mot_cle'");
	if ( !mysql_num_rows($result) )
	{
		echo "Pas de résultats";
	}
	else
	{
		$i=0;
		while ($row = mysql_fetch_object($result))
		{
			$resultat = $row->description;
			echo "resultat(s) ".++$i.": ".$resultat;
		}
	}
        mysql_free_result($result);
        mysql_close($connexion);
}
else echo "Aucun mot clé n'a été saisi";
?>


L’idée est là, j’ai gardé certaines choses que tu avais mises sans trop savoir pourquoi elles étaient là mais tu gères tes traitements comme tu veux.

merci je v essayer tt sa