Pays-Froid.Net

Qu'est ce que Pays-Froid.Net

Création moteur de recherche

Posez vos problèmes à propos du PHP

Création moteur de recherche

Messagede yoyo86 le 21 Jan 2007 4:47

Bonjour !!!

Voila j'essaye de créer un site avec quelques solutions de jeux d'aventures et j'aurais aimé sur mon site mettre un moteur de recherche pour que le visiteur puisse taper le nom de son jeu et directement atterrir sur la page qui l'intéresse !!!

Donc, si quelqu'un a la solution je l'en remercie !!!

PS : j'ai pas mal cherché sur internet et je n'ai trouvé que des tutos ou des scripts beaucoup trop compliqué pour mon niveau !! Donc si la solution pouvait etre "simple" ou commentée ca serait cool !! (je sais j'en demande beaucoup :)
yoyo86
Pinguin
Pinguin
 
Messages: 193
Inscription: 30 Nov 2006 0:54

Messagede yoyo86 le 23 Jan 2007 0:34

Aller svp répondez-moi !!! Sui sur que quekqu'un a la réponse !!! ;););)
Image
yoyo86
Pinguin
Pinguin
 
Messages: 193
Inscription: 30 Nov 2006 0:54

Messagede Patoch le 23 Jan 2007 0:47

Je vais essayer de me renseigner.
Je te dis ca :)
Image
Image
Avatar de l’utilisateur
Patoch
Administrateur
Administrateur
 
Messages: 1343
Inscription: 13 Nov 2006 1:53
Localisation: Sur la Banquise

Messagede yoyo86 le 23 Jan 2007 0:48

Ok !!! Merci d'avance !!!! :)
Image
yoyo86
Pinguin
Pinguin
 
Messages: 193
Inscription: 30 Nov 2006 0:54

Messagede Patoch le 23 Jan 2007 1:00

J'ai trouvé ce code. Je pense que tu peux le comprendre. Il faut bien sur que tu l'adapte a ton site mais ca devrai etre assez simple :)

Bonne chance ;)

Code: Tout sélectionner
<form action="recherche.php" method="post">
  <font color="#000000" size="2" face="Verdana">Saisissez un ou plusieurs mots :</font>
    <font size="2" face="Verdana">
  <input type="text" name="mot" size="20">
  <input type="submit" value="Rechercher">
    </font>
</form>
<font face="Verdana" size=2>
<?
/******************************************************************
*       VARIABLES A MODIFIER
******************************************************************/

// NOMBRE DE RESULTATS PAR PAGE
$limit=5;

// NOM DE CE SCRIPT
$script_name="recherche.php";

// SERVEUR SQL
$sql_serveur="localhost";

// LOGIN SQL
$sql_user="mon nom";

// MOT DE PASSE SQL
$sql_passwd="mon mot de passe";

// BASE DE DONNEE
$sql_bdd="ma bdd";

// RECHERCHE AVEC TOUS LES MOTS : METTEZ "and"
// RECHERCHER LES PAGES QUI CONTIENNENT AU MOINS UN MOT : METTEZ "or"
$et_ou="or";


/******************************************************************
*       PROGRAMME PRINCIPAL
******************************************************************/

$db_link = mysql_connect("$sql_serveur","$sql_user","$sql_passwd");

if(isset($_POST['mot']))
$mot = $_POST['mot'];
else if(isset($_GET['mot']))
$mot = $_GET['mot'];
else
$mot = '';
$mot=strtolower($mot);
$mots=split(" ",$mot);
$nombre_mots=count($mots);

$z=1;
$texte="Pages contenant <b>&quot;$mots[0]&quot;</b>";
$phrase="'%$mots[0]%'";
while($z<$nombre_mots)
        {
        $phrase.=" ".$et_ou." mots like '%$mots[$z]%'";
        $texte.=" ";
        if($et_ou=="and"){$texte.="et";}else{$texte.="ou";}
        $texte.=" <b>&quot;$mots[$z]&quot;</b>";
        $z++;
        }

if($debut==""){$debut=0;}
$debut=$page*$limit;

// NOMBRE TOTAL D'ENREGISTREMENTS REPONDANT A LA REQUETE
$requete=mysql_db_query("$sql_bdd","select count(*) from recherche where mots like $phrase order by id",$db_link);
$nb_total=mysql_result($requete,0,"count(*)");

$requete=mysql_db_query("$sql_bdd","select * from recherche where mots like $phrase limit $debut,$limit",$db_link);
$num=mysql_num_rows($requete);

// DEFINITION DU MESSAGE A AFFICHER
if ($num==0) {echo "Désolé, aucune page de ce site ne contient <b>$mot</b>...";}
else if ($mot=="")      {echo "Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur 'OK' !";}
else if (strlen($mot)<2) {echo "Veuillez saisir au moins 2 caractères.";}
       
// AFFICHAGE DES RESULTATS
else {

echo "<b>$nb_total</b> r&eacute;ponse";
if ($nb_total>1) {echo "s";}
echo "<br>$texte";

$i=0;
while($i<$num)
        {
        $url=mysql_result($requete,$i,"url");
        $description=mysql_result($requete,$i,"description");
        $titre=mysql_result($requete,$i,"titre");
        echo "<br><br><a href=\"$url\"><b>$titre</b></a><br>$description<br><font size=1>$url</font>\n";
        $i++;
        }

echo "<br><br>";

// AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST
// (LA PREMIERE PAGES EST 0)
if ($page>0)
        {
        $precedent=$page-1;
        print  "<a href=\"$script_name?page=$precedent&mot=$mot\">PRECEDENT</a>&nbsp;\n";
        }


// AFFICHAGE DES NUMEROS DE PAGE
$i=0;$j=1;
if($nb_total>$limit)
        {
        while($i<($nb_total/$limit))
                {
                if($i!=$page){echo "(<a href=\"$script_name?page=$i&mot=$mot\">$j</a>)&nbsp;";}
                else {echo "<b>($j)</b>&nbsp;";}
                $i++;$j++;
                }
        }


// AFFICHAGE DU LIEN SUIVANT SI BESOIN EST
if($debut+$limit<$nb_total)
        {
        $suivant=$page+1;
        echo "<a href=\"$script_name?page=$suivant&mot=$mot\">SUIVANT</a>";
        }
}


// DECONNEXION DE LA BASE DE DONNEE
mysql_close($db_link);
?>

</font>
:mrgreen:
Image
Image
Avatar de l’utilisateur
Patoch
Administrateur
Administrateur
 
Messages: 1343
Inscription: 13 Nov 2006 1:53
Localisation: Sur la Banquise

Messagede yoyo86 le 23 Jan 2007 1:13

Merci !! J'essaye ça de suite !!!
Image
yoyo86
Pinguin
Pinguin
 
Messages: 193
Inscription: 30 Nov 2006 0:54

Messagede yoyo86 le 23 Jan 2007 1:25

EUh .... j'ai un petit souci !! D'après ce script je dois créer une table (ca encore c simple :) )mais je vois pas d'après le script quel champs je dois créer dans ma table. De plus, je vois mal ( ça doit être dû à mon manque d'expérience en php ) le rapport entre ce qui est enregistré dans la base de donnée et les pages de mon site (et leur contenu) !!!
yoyo86
Pinguin
Pinguin
 
Messages: 193
Inscription: 30 Nov 2006 0:54

Messagede Patoch le 23 Jan 2007 1:38

A tu essayer ce lien : Ici
Image
Image
Avatar de l’utilisateur
Patoch
Administrateur
Administrateur
 
Messages: 1343
Inscription: 13 Nov 2006 1:53
Localisation: Sur la Banquise

Messagede yoyo86 le 23 Jan 2007 1:41

ouai :) j ai déjà regarder mais la première fois que je suis tombé dessus j ai été un peu blasé :o ( moi rien comprendre ) mais bon je vais m'y pencher à nouveau et jte tiens au courant !!! :D
yoyo86
Pinguin
Pinguin
 
Messages: 193
Inscription: 30 Nov 2006 0:54

Messagede Patoch le 23 Jan 2007 1:44

Je cherche encore a coté. On ne sait jamais :)

ps : clic la ou tu sais :P
Image
Image
Avatar de l’utilisateur
Patoch
Administrateur
Administrateur
 
Messages: 1343
Inscription: 13 Nov 2006 1:53
Localisation: Sur la Banquise

Messagede yoyo86 le 23 Jan 2007 2:03

Bon !!! Je viens de regarder attentivement et je me pose plusieurs questions :
- > leur "requête" elle sort d'où
-> n'y a-t-il pas uen erreur de codage par hasard ( on trouve un <? au départ mais plusieurs ?> d'affiler

J aurais bien d'autres questions mails elles viendront un tout petit peu plus tard !!!
Image
yoyo86
Pinguin
Pinguin
 
Messages: 193
Inscription: 30 Nov 2006 0:54

Messagede yoyo86 le 23 Jan 2007 2:05

De plus , quend je fais un test j obtien ça :

"""""""""""""""""""""""""""""""""""""""""""""""""""
Résultats de votre recherche.

Nous avons trouvé 1) { echo 'résultats'; } else { echo 'résultat'; } // on vérifie le nombre de résultats pour orthographier correctement. ?> dans notre base de données. Voici les fonctions que nous avons trouvé :




Faire une nouvelle recherche
Pas de résultats

Nous n'avons trouvé aucun résultats pour votre requête "". Réessayez avec autre chose.

Vous allez faire une recherche dans notre base de données concernant les fonctions PHP. Tapez une requête pour réaliser une recherche.


""""""""""""""""""""""""""""""""""""""""""""""""""""""

J ai comme l'impression kil y a un truc ki colle pas !!! :?
yoyo86
Pinguin
Pinguin
 
Messages: 193
Inscription: 30 Nov 2006 0:54

Messagede Patoch le 23 Jan 2007 2:06

pour les <? et ?>, il y a le compte. Il faut juste faire attention car certain son coloré en rouge etant donné qu'ils sont confondu avec les code HTML.
Leur requete est une requete normal. Il en existe plusieur dans ce genre :)
Il faut les apprendre :P
Image
Image
Avatar de l’utilisateur
Patoch
Administrateur
Administrateur
 
Messages: 1343
Inscription: 13 Nov 2006 1:53
Localisation: Sur la Banquise

Messagede yoyo86 le 23 Jan 2007 2:08

ouai mai n empeche ke je vois toujours pa koi mettes dans les champs de ma base de donnée et que j ai un tout petit peu beaucoup de mal a comprendre le script !!! sniiiiiiiiiiiiiif
Image
yoyo86
Pinguin
Pinguin
 
Messages: 193
Inscription: 30 Nov 2006 0:54

Messagede Patoch le 23 Jan 2007 2:17

Sinon j'ai trouvé un petit moteur de recherche mais etant en regex, et non en full-text , ca risque de poser des probleme si ta BDD est enorme.
J'espere que ce n'est pas le cas :)

Code: Tout sélectionner
        <div id="menu_up">     
                <h2>Moteur de recherche de lyrics v0.8<br /></h2>
               
                <p class="centre">
                        <?php
                        if (isset($_POST['recherche']))
                        {

                                $recherche=strtolower(htmlentities ($_POST['recherche'])); //  Conversion du mot recherché en minuscule : ex : BON JOVI -> bon jovi
                                $compteur=0; // Compteur qui permet de savoir combien de résultats ont été trouvés


                                if (preg_match("#[^ \# \! \^ \$ \( \) \[ \] \{ \} \? \+ \* \. ]#" , $recherche)) // Permet de virer tous les caractères spéciaux
                                {
                                        mysql_connect("xxxxxxx", "xxxxxxx", "xxxxxx");
                                        mysql_select_db("xxxxxx");

                                        $donnees_lyrics = mysql_query("SELECT * FROM lyrics");

                                       
                                        while ($donnees = mysql_fetch_array($donnees_lyrics) )
                                        {       

                                                if (preg_match("#$recherche#" , strtolower($donnees['interprete']))) // Les données de la section interprête sont transformées en minuscules
                                                {
                                                        $resultat.='<a href="affiche-chanson-'.$donnees['id'].'.html">'.$donnees['interprete'].' - '. $donnees['titre'].'</a><br />';
                                                        $compteur=$compteur+1;
                                                }

                                                if (preg_match("#$recherche#" , strtolower($donnees['titre']))) // Les données de la section titre sont transformées en minuscules
                                                {
                                                        $resultat.='<a href="affiche-chanson-'.$donnees['id'].'.html">'.$donnees['titre'].' - '. $donnees['interprete'].'</a><br />';
                                                        $compteur=$compteur+1;
                                                }
                                        }

                                        if ($compteur==0) // Si le compteur est égal à 0 -> Aucune lyrics trouvée
                                        {
                                                $resultat.='- Lyrics/Artiste non trouvé -';
                                        }
                                        mysql_close();
                                }
                                else
                                {
                                        $resultat='Merci de ne pas utiliser de caractères spéciaux dans votre recherche';
                                }
                                echo '<strong>Nombre de résultats trouvé : '.$compteur.'</strong><br /><br />';
                                echo $resultat;
                        }
                        ?>
                </p>
               
                <form method="post" action="lyrics.php">
                        <p class="centre">
                                <input type="text" name="recherche" value="" tabindex="10"/>
                                <input type="submit" value="Rechercher" />
                        </p>
                </form>
               
        </div>
Image
Image
Avatar de l’utilisateur
Patoch
Administrateur
Administrateur
 
Messages: 1343
Inscription: 13 Nov 2006 1:53
Localisation: Sur la Banquise

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron

Copyright © Pays-Froid.Net

Nous contacter | Notre Histoire | Plan du site | Nos partenaires | Mentions légales | Fil RSS | XHTML 1.0 | CSS 2.0

Partenaire : Waliwaloo - Darklg - Yagoort - Meilleur du Web - Hit Parade