Bouts de Codes PHP

Réaliser votre Moteur de recherche

Information sur le code source PHP

Ecrit par :  freemh
Site de l'auteur Voir
Codes en PHP de l'auteur : [7] sources Voir
Enregistrement le 02 Aout 2008 - Vu 4808 fois
Impression: Imprimer le code
Pas encore
de vote

Description du code source

Information sur le code source

Un moteur de recherche necessite une connexion à mysql et execute la recherche avec la requete LIKE.....

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 source

Fonctions php / mysql PHP

  • mysql_connect : Ouvre une connexion à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
  • die : Alias de la fonction exit() - (PHP 4, PHP 5)
  • mysql_error : - (PHP 4, PHP 5, PECL mysql:1.0)
  • mysql_select_db : Sélectionne une base de données MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
  • htmlentities : Convertit tous les caractères éligibles en entités HTML - (PHP 4, PHP 5)
  • mysql_real_escape_string : Protège les caractères spéciaux d'une commande SQL - (PHP 4 >= 4.3.0, PHP 5, PECL mysql:1.0)
  • empty : Détermine si une variable contient une valeur non nulle - (PHP 4, PHP 5)
  • mysql_query : Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
  • mysql_num_rows : Retourne le nombre de lignes d'un résultat MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
  • echo : Affiche une chaîne de caractères - (PHP 4, PHP 5)
  • mysql_fetch_array : - (PHP 4, PHP 5, PECL mysql:1.0)
  • mysql_close : Ferme la connexion MySQL - (PHP 4, PHP 5, PECL mysql:1.0)

Commentaire (1)
Nouveau message superpigeon
le 21 Aout 2008 à 09:23:00
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 ^^)

Poster un commentaire

:P :)
:wink: :lol:
:surprised: :confused:
:idea: :no:
Taille du texte:
Couleur:
 
Code de sécurité
Offres d'emploi
Librairie

Langages de programmation

La librairie est ouverte à tous et elle est accès principalement sur les langages PHP et MySQL. Vous trouverez aussi d'autres langages de programmation tel que le CSS, HTML, AJAX, ASP.. Plus de 300 références facilement accessibles. Visiter

  • PHP et MYSQL - MySQLi - PDO - Construisez votre application
  • Maîtrise de la base de données MySQL avec les fondamentaux de PHP
  • PHP 5 - MySQL 5 - Ajax - Entrainez-vous à créer des applications professionnelles
  • PHP & MySQL et CSS
  • PHP 5 - MySQL 5 - Ajax - Entrainez-vous à créer des applications professionnelles
  • PHP/MySQL et JavaScript
  • Des CSS au DHTML - JavaScript appliqué aux feuilles de style
  • MySQL 5 : Installation, mise en oeuvre, administration et programmation
  • HTML et CSS2
  • Ergonomie Web