{MySQL} Probleme fonction

hmidanas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
hmidanas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   42
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   42
 
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   Statut Membre Dernière intervention  
 
Ok!!! Merci de me repondre :)
0