Vous êtes ici Codes PHP et MySQL > Recherches > Réaliser votre Moteur de recherche

 

Réaliser votre Moteur de recherche

Un moteur de recherche necessite une connexion à mysql et execute la recherche avec la requete LIKE.....
 
freemh
Site de l'auteur voir
[7] sources en PHP voir
Code vu 7289 fois
Enregistré le 02 Aout 2008
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Réaliser votre  Moteur de recherche
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Réaliser votre  Moteur de recherche                       */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts441-PHP.htm              */
/* Auteur         : freemh                                                    */
/* Date édition   : 02 Aout 2008                                              */
/* Website auteur : http://www.tutoslinux.com                                 */
/*                                                                            */
/******************************************************************************/
?>
<!--   Executer cette requete dans votre Base donnée
    
    CREATE TABLE IF NOT EXISTS `site` (
      `id` int(10) unsigned NOT NULL auto_increment,
     `nom_site` varchar(100) character set latin1 NOT NULL,
     `adresse_site` varchar(100) character set latin1 NOT NULL,
    `description_site` varchar(100) character set latin1 NOT NULL,
    PRIMARY KEY  (`id`)
   ) ENGINE=MyISAM  DEFAULT CHARSET=latin7 AUTO_INCREMENT=4 ;


  INSERT INTO `site` (`id`, `nom_site`, `adresse_site`, `description_site`) VALUES 
(1, 'Annonce Voiture', '<a href="mehdi">voiture</a>', 'trouver tous les voitures'),
(2, '', '', ''),
(3, 'voiture mercedes', '<a href="mercedes">Mercedes car</a>', 'Voiture mercedes');

-->

<html>
    <head>
        <title>Moteur de Recherche</title>
        <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
    </head>
<?php
     //connection à la base donnée//
     
$host "localhost";
$pseudo "root";
$password "votremotdepasse";
$database "moteur_recherche";

$connection mysql_connect($host,$pseudo,$password)
              or die ('Erreur Connection'.mysql_error($conenction));
$select_db  mysql_select_db($database)
            or die ('Base inexistante'.mysql_error($conenction));


//utiliser la fonction htmlentities et mysql_real_escape string, afin d'eviter     //
// la sql injection avec la fonction(mysql_real_escape_string) et eviter d'injecter//
//du html,javascript... dans votre base avec la fontion (htmlentities)             //


$requete htmlentities(mysql_real_escape_string($_POST['requete']));


if (!empty($requete))
{
    $req "SELECT * FROM site WHERE nom_site LIKE '%$requete%'"; 
    $exec mysql_query($req);                            //executer la requete
    $nb_resultats mysql_num_rows($exec);              //compter les résultats


if($nb_resultats != 0) 
{
   echo '<center>';   
   echo '
       <form action="moteur_recherche2.php" method="Post">
       <input type="text" name="requete" size="60px">
       <input type="submit" value="Ok">
       </form>';
  echo '</center>';
  echo '<font color="blue">Resultat de votre recherche </font><br/>
        <font size="2px">'.$nb_resultats.'</font>';


if($nb_resultats 1)
{
    echo ' <font size="2px" color="red">resultats</font> ';
}
    else
    {
        echo ' <font size="2px" color="red">resultats trouvé</font>  ';
    } 



   echo  '<font size="2px">dans notre base de donnees :</font><br/><br/>';



while($donnees mysql_fetch_array($exec)) 
{
?>

<?php
      
      echo '<span>'; 
      echo '<font size="2px">'.$donnees['adresse_site'].'</font><br/>';
      echo  '<font size="2px">'.$donnees['nom_site'].'</font><br/>';
      echo '<font size="2px">'.$donnees['description_site'].'</font><br/>';
      echo '</span>';
?>

<?php
// fin de la boucle
?>


<?php
}


else
{ 
    echo '<center>';   
    echo '
       <form action="moteur_recherche2.php" method="Post">
       <input type="text" name="requete" size="60px">
       <input type="submit" value="Ok">
       </form>';
    echo '</center>';
    echo '<h5>Pas de resultats</h3>';
    echo '<pre>Nous n avons trouver aucun resultats pour votre requete
          <font color="blue">' .$_POST['requete'].'</font></pre>';
  
}
mysql_close(); 
}

else

{ 


 echo '<center>';   
 echo '
       <form action="moteur_recherche2.php" method="Post">
       <input type="text" name="requete" size="60px">
       <input type="submit" value="Ok">
       </form>';
 echo '</center>';      

}

?> 
 

Fonctions du code

: Ouvre une connexion à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Alias de la fonction exit() - (PHP 4, PHP 5)
: - (PHP 4, PHP 5, PECL mysql:1.0)
: Sélectionne une base de données MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Convertit tous les caractères éligibles en entités HTML - (PHP 4, PHP 5)
: Protège les caractères spéciaux d'une commande SQL - (PHP 4 >= 4.3.0, PHP 5,...
: Détermine si une variable contient une valeur non nulle - (PHP 4, PHP 5)
: Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Retourne le nombre de lignes d'un résultat MySQL - (PHP 4, PHP 5, PECL...
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
: - (PHP 4, PHP 5, PECL mysql:1.0)
: Ferme la connexion MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
Commentaires
Deux petites remarques en parcourant vite ce petit script :

- Utiliser htmlentities pour l'insertion en base... mouarf, c'est plutôt pour l'affichage qu'on l'utilise généralement, il suffit qu'un jour tu veuilles faire autre chose de ta base et tu te retrouves avec plein d'entités html inexploitables.

- Quand tu traites un résultats d'une requete en base, je vois que tu utilises myql_fetch_array(), ça fonctionne, mais vu l'utilisation que tu en fais, mysql_fetch_assoc() serait plus efficace (mysql_fetch_array renvoie un tableau avec en indice le nom des champs ET des indices numériques, mysql_fetch_array n'utilise que les noms de champs comme indice, donc un tableau deux fois moins gros ^^)
 
bonjours,
Dans ton script je vois que tu as incèré
ce bout de code:

    echo 
'<center>';   
    echo 
'
       <form action="moteur_recherche2.php" method="Post">
       <input type="text" name="requete" size="60px">
       <input type="submit" value="Ok">
       </form>'
;
    echo 
'</center>';
    echo 
'<h5>Pas de resultats</h3>';
    echo 
'<pre>Nous n avons trouver aucun resultats pour votre requete
          <font color="blue">' 
.$_POST['requete'].'</font></pre>';
 
}

mais quand tu lance une recherche il te réclame "moteur_recherche2.php"

mais on ne le retrouve pas dans le zip

que dois t'on faire
 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Recherches

 
 

PHP

 
 
 
PHP 5 Livre PHP

PHP 5
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
        Publicité