[moteur de recherche php]

jf -  
teutates Messages postés 19847 Date d'inscription   Statut Modérateur Dernière intervention   -
bonjour
J'ai inséré dans mon site un petit moteur de recherche interne ! J'aimerai cependant mettre en évidence le résultat de la requête en surlignant le mot clef recherché dans la page . Es ce que quelqu'un pourrait m'expliquer le code à insérer ? merci d'avance ;)

1 réponse

  1. teutates Messages postés 19847 Date d'inscription   Statut Modérateur Dernière intervention   3 589
     
    [moteur de recherche, petite précision]
    Ajouté par jf
    2006-06-07 16:53:12 (GMT+2)

    j'ai oublié de vous fournir mon code php :

    <?php
    include("connexion.php");

    echo "
    <html>

    <head>

    <title>Résultat de la recherche</title>

    </head>

    <body>";

    $Mot = $_POST['Mot'];

    if (($Mot == "")||($Mot == "%")) {
    // Si aucun mot clé n'a été saisi,
    // le script demande à l'utilisateur
    // de bien vouloir préciser un mot clé

    echo "
    Veuillez entrer un mot clé s'il vous plaît!
    <p>";

    }

    else {
    // On selectionne les enregistrements contenant le mot clé
    // dans les keywords ou le titre
    $query = "SELECT distinct count(lien) FROM search
    WHERE keyword LIKE \"%$Mot%\"
    OR titre LIKE \"%$Mot%\"
    ";

    $result = mysql_query($query);

    $row = mysql_fetch_row($result);

    $Nombre = $row[0];

    // Si aucun enregistrement n'est retourné,
    // on affiche un message adéquat
    if ($Nombre == "0") {
    echo "
    <h2>Aucun résultat ne correspond à votre recherche</h2>

    <p>

    ";

    }

    // Sinon, on affiche le nombre d'enregistrements correspondant
    // et les résultats eux-mêmes
    else {
    $query = "SELECT distinct lien,keyword,titre FROM search
    WHERE keyword LIKE \"%$Mot%\"
    OR titre LIKE \"%$Mot%\" ORDER by titre ASC";

    $result = mysql_query($query);

    // Si un seul enregistrement est trouvé, on affiche un message au singulier
    if ($Nombre == "1") {
    echo "
    <a name=\"#resultat\"><h2>Résultat: Un article trouvé</h2></a>

    <p>";

    }
    // Dans le cas contraire le message est au pluriel...
    else {
    echo "
    <a name=\"#resultat\"><h2>Résultat: $Nombre articles trouvés</h2></a>

    <p>";

    }
    while($row = mysql_fetch_row($result))
    {
    echo "
    <p>\n
    <b>$row[2]</b>\n
    <br><a href=\"./$row[0]\">Visualiser l'article</a>\n
    <p>\n
    ";
    }
    }

    }

    // on ferme la base
    mysql_close();

    ?>

    </body>

    </html>

    voilà donc si quelqu'un pouvait m'expliquer comment mettre en évidence le résultat dans la page , en lu surlignant par exemple, ça serait bien cool ! merci d'avance ;)
    0