{MySQL} Probleme fonction

Fermé
hmidanas Messages postés 13 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 28 avril 2010 - 7 août 2009 à 04:44
hmidanas Messages postés 13 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 28 avril 2010 - 11 août 2009 à 03:48
Bonjour,

j'essaye de creer une fonction moteur de recherche, pour avoir plusieurs champs, et chercher ainsi en fonction de ce qu'on veut. voila mon code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Information writer</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design_index.css" />
</head>
<body>

<?php
$field= "company";
function search_by($field)
{

if(isset($_POST['requete']) && $_POST['requete'] != NULL)
{
mysql_connect('localhost','root','');
mysql_select_db('nasforce');
$requete = htmlspecialchars($_POST['requete']);
$query = mysql_query("SELECT * FROM investors WHERE $field LIKE '%$requete%' ORDER BY id DESC") or die (mysql_error());
$nb_resultats = mysql_num_rows($query);
if($nb_resultats != 0)
{

?>
<h3>Here is your result research.</h3>
<p>We found <?php echo $nb_resultats;
if($nb_resultats > 1) { echo ' results which are'; } else { echo 'result which is'; }
?>
<br/><br /><br /><br />
<?php

while($donnees = mysql_fetch_array($query))
{
$company_name_tranmitted = $donnees['$field'];
?>
<a href="affichage_result_details.php? request=<?php echo $company_name_tranmitted;?>"><strong><?php echo $field ?></strong> : <?php echo $donnees['$field']; ?><br /></a></p>
<?php
}
?>
<br/><br/>
<a href="search_engine_test.php">New Research</a></p>
<?php
}
else
{
?>
<p> sorry there are no such entries there </p>
<a href="search_engine_test.php">New Research</a></p>
<?php
}
}
else
{
?>
<p>search by <?php echo $field ?></p>
<form action="search_engine_test.php" method="Post">
<input type="text" name="requete" size="20">
<input type="submit" value="Ok">
</form>
<?php
}
}
search_by(date); <br/>
search_by(entered_by);<br/>
search_by(type);
?>

</body>
</html>


le moteur de recherche marche sans probleme et je pourrais faire 3 ou 4 copier coller, mais je preferais le faire en etant un peu moins bourrin :)

Merci !
A voir également:

4 réponses

imw Messages postés 233 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 42
7 août 2009 à 08:28
Tu n'a qu'a recherché tout d'un coup ...
SELECT * 
FROM investors 
WHERE 
    `date` LIKE '%$requete%' 
    OR `entered_by` LIKE '%$requete%'
    OR `type` LIKE '%$requete%'
ORDER BY id DESC


bien sur, tu peux aussi personnaliser, voire même appeler ta fonction en lui passant une liste des champs à tester, générer la requête dynamiquement ...
0
hmidanas Messages postés 13 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 28 avril 2010
7 août 2009 à 11:29
Peut etre que je me trompe, mais je me disais que pour une recherche, c'est peut etre pas la meilleure solution de tout selectionner d'un coup...?
0
imw Messages postés 233 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 42
7 août 2009 à 11:38
c'est toujours mieux que de faire 3 fois la recherche ...

Après ça dépend ce que tu veux faire.
Si tu dois séparer l'affichage des recherches, évidemment, il faudra le faire plusieurs fois.
Avec la méthode donnée, tu aura tout les résultats mélangé ... mais forcément plus rapide.
0
hmidanas Messages postés 13 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 28 avril 2010
11 août 2009 à 03:48
Ok!!! Merci de me repondre :)
0