{MySQL} Probleme fonction

hmidanas Messages postés 13 Statut Membre -  
hmidanas Messages postés 13 Statut Membre -
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 !
Configuration: Windows XP
Firefox 3.0.13

4 réponses

  1. imw Messages postés 233 Statut Membre 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
  2. hmidanas Messages postés 13 Statut Membre
     
    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
  3. imw Messages postés 233 Statut Membre 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
  4. hmidanas Messages postés 13 Statut Membre
     
    Ok!!! Merci de me repondre :)
    0