Php Moteur de recherche : classer les données de résultats

loutry -  
 loutry -
Bonjour à tous,
je me permets de revenir sur le forum pour solliciter votre aide.
J'ai cherché sur la toile une fonction Moteur de recherche que j'ai trouvé et qui fonctionne pas mal.
aujourd'hui, j'aimerais la compléter car elle manque de pertinence.
pour se faire, j'aimerai classer mes données.

Pour le moment, j'ai dans mon moteur 2 récupérations de données dans la même table t_pkmn : le nom et le type.


function resultat_recherche($search)
{
$ou="";
$search = preg_split('/[\s]+/',$search);

$total_resultat = count($search);
foreach($search as$key=>$searches)
{
$ou .= "nomfr LIKE '%$searches%' OR type1 LIKE '%$searches%'";
if($key !=($total_resultat-1))
{
$ou .= "AND";
}
}
$query = mysql_query("SELECT * FROM t_pkmn WHERE $ou ORDER BY id_pkmn ASC");
$rows = mysql_num_rows($query);
if($rows)
{ ?>

[...]
// ici pas de souci (je pense)
<?php
while($row = mysql_fetch_assoc($query))
{
echo "<tr>";
echo "<td>#".$row['id_pkmn']."</td>";

} else echo "Pas de résultat pour votre recherche ".$searches;

}
?>


Et ici le code de ma feuille de résultat

<?php
if(isset($_POST['submit']))
{
$search = mysql_real_escape_string(htmlentities(trim($_POST['search'])));
if(empty($search))
{
$error[] = "<img src='images/structure/valid_wrong.png' alt=''>";
}
if(empty($error))
{
echo "<fieldset>";
resultat_recherche($search);
echo "</fieldset>";
}
else
{

foreach($error as $errors){
echo $errors."<br />";
}
}
}
?>

Ma demande serait :
Peut-on dans ma feuille de résultat mettre en premier les noms et dans une seconde partie les types ?
Sachant par exemple que le mot feu peut être compris soit dans le nom ou dans le type.
je ne sais pas si je suis assez clair :s


Merci par avance pour votre aide.
Bon aprem
A voir également:

2 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Le plus simple serait d'appeler ta recherche en deux fois, en modifiant ses paramètres d'appel :
function resultat_recherche($search)
// [...]
  $ou .= "nomfr LIKE '%$searches%' OR type1 LIKE '%$searches%'";
// [...]

   echo "<fieldset>";
    resultat_recherche($search);
   echo "</fieldset>"; 

Devient :
function resultat_recherche($search, $column)
// [...]
  $ou .= " $column LIKE '%$searches%' ";
// [...]

   echo "<fieldset>";
    resultat_recherche($search, 'nomfr');
   echo "</fieldset>";
   echo "<fieldset>";
    resultat_recherche($search, 'type1');
   echo "</fieldset>"; 


Xavier
1
loutry
 
Ecoute, c'est parfait.
c'est bien ce que je cherchais.
Je te remercie Xavier :)
0