begin process at 2012 05 31 02:23:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Probleme script moteur de recherche


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme script moteur de recherche

mardi 17 janvier 2012 à 10:13:02 | Probleme script moteur de recherche

McGyver59

Bonjour

Sur le web j'ai trouvé un moteur de recherche interne pour mon site il fonctionne trés bien mais j'ai un soucis avec.
Meme si je ne met rien dans le champs recherche il trouve quand meme. Et je trouve qu'il doit avoir un soucis car il fais bugguer firefox

la partie du code qui me gene et que je voudrais changer et celle-ci mais je sais pas comment faire
Code PHP :
if(isset($_GET['search']))
{
        $rec = mysql_real_escape_string(htmlspecialchars($_GET['search']));
}
else
{
        $rec = 'php MYSQL';
}


Si une personne charitable pouvez m'aider a le faire fonctionner se serais sympa voici le script
Code PHP :
<?php
mysql_connect('localhost','users','mot de passe');
mysql_select_db('base de donnée');
//On determine l'expression a rechercher
if(isset($_GET['search']))
{
        $rec = mysql_real_escape_string(htmlspecialchars($_GET['search']));
}
else
{
        $rec = 'php MYSQL';
}
//On determine le type de recherche
if(isset($_GET['type']))
{
        if($_GET['type']=='un')//Un des mots
        {
                $type = 1;
        }
        elseif($_GET['type']=='all')//Tout les mots
        {
                $type = 2;
        }
        else//L'expression exacte
        {
                $type = 3;
        }
}
else
{
        $type = 1;//type par defaut: L'expression exacte
}
//On determine si on doit surligner les mots dans les resultats
if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
{
        $surligner = false;
}
else
{
        $surligner = true;
}
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT image1, name, keywords FROM download WHERE ';
if($type==1)
{//ayant un des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' keywords LIKE "%'.$mot.'%" OR';
        }
        $req .= ' 1=0';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' keywords LIKE "%'.$mot.'%" AND';
        }
        $req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
        $req .= 'keywords LIKE "%'.$rec.'%"';
}
//Les utilisateur seront ranges par identifiant en ordre croissant
$req .= ' order by id asc';
$requete = mysql_query($req);
//Le formulaire de recherche
?>
<form action="" method="get">
Expression &agrave; rechercher: <input type="text" name="search" value="<?php echo $rec; ?>" /><br />
Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="all"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <input type="radio" name="type" value="exacte"<?php if($type==3){echo 'checked="checked"';} ?> /> Expression exacte<br />
Mettre en gras les mots recherch&eacute;s: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<h2>R&eacute;sultats</h2>
<table>
        <tr>
                <th>Affiche</th>
                <th>Titre</th>
                <th>Mots clefs</th>
        </tr>
<?php
//On affiche les resultats
while($dnn = mysql_fetch_array($requete))
{
?>
        <tr>
                <td><?php echo '<img src="uploads/images/'.$dnn['image1'].'" alt="Help" width="100" />'; ?></td>
                <td><?php echo $dnn['name']; ?></td>
                <td><?php
if($surligner)//Si il faut surligner les mots, on les surligne
{
        if($type==3)
        {
                echo preg_replace('#('.preg_quote($rec).')#i', '<strong>$1</strong>', $dnn['keywords']);//On surligne l'expression exacte
        }
        else
        {
                echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $dnn['keywords']);//On surligne les mots cles de la recherche
        }
}
else
{
        echo $dnn['keywords'];//On ne surligne pas
}
?></td>
        </tr>
<?php
}
?>
</table>


Ou si une personne a un script similaire se serais sympa

Je vous remercie de votre aide
Bonne année 2012 a tous et a toutes
mardi 17 janvier 2012 à 10:38:43 | Re : Probleme script moteur de recherche

cod57

bonjour

essaie

Code PHP :
if(isset($_GET['search']) && strlen($_GET['search')>2}
{
        $rec = mysql_real_escape_string(htmlspecialchars($_GET['search']));




}




Bonne programmation !
mardi 17 janvier 2012 à 11:21:08 | Re : Probleme script moteur de recherche

McGyver59

Cool merci cela fonctionne.
j'ai fais comme ceci
Code PHP :
mysql_connect('localhost','users','mot de passe');
mysql_select_db('base de donnée');
//On determine l'expression a rechercher
if(isset($_GET['search']) && strlen($_GET['search'])>2)
{
        $rec = mysql_real_escape_string(htmlspecialchars($_GET['search']));

//On determine le type de recherche
if(isset($_GET['type']))
{
        if($_GET['type']=='un')//Un des mots
        {
                $type = 1;
        }
        elseif($_GET['type']=='all')//Tout les mots
        {
                $type = 2;
        }
        else//L'expression exacte
        {
                $type = 3;
        }
}
else
{
        $type = 1;//type par defaut: L'expression exacte
}
//On determine si on doit surligner les mots dans les resultats
if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
{
        $surligner = false;
}
else
{
        $surligner = true;
}
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT image1, name, keywords FROM download WHERE ';
if($type==1)
{//ayant un des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' keywords LIKE "%'.$mot.'%" OR';
        }
        $req .= ' 1=0';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' keywords LIKE "%'.$mot.'%" AND';
        }
        $req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
        $req .= 'keywords LIKE "%'.$rec.'%"';
}

//Les utilisateur seront ranges par identifiant en ordre croissant
$req .= ' order by id asc';
$requete = mysql_query($req);
//Le formulaire de recherche
?>
<form action="" method="get">
Expression &agrave; rechercher: <input type="text" name="search" value="<?php echo $rec; ?>" /><br />
Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="all"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <input type="radio" name="type" value="exacte"<?php if($type==3){echo 'checked="checked"';} ?> /> Expression exacte<br />
Mettre en gras les mots recherch&eacute;s: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<h2>R&eacute;sultats</h2>
<table>
        <tr>
                <th>Affiche</th>
                <th>Titre</th>
                <th>Mots clefs</th>
        </tr>
<?php
//On affiche les resultats
while($dnn = mysql_fetch_array($requete))
{
?>
        <tr>
                <td><?php echo '<img src="uploads/images/'.$dnn['image1'].'" alt="Help" width="100" />'; ?></td>
                <td><?php echo $dnn['name']; ?></td>
                <td><?php
if($surligner)//Si il faut surligner les mots, on les surligne
{
        if($type==3)
        {
                echo preg_replace('#('.preg_quote($rec).')#i', '<strong>$1</strong>', $dnn['keywords']);//On surligne l'expression exacte
        }
        else
        {
                echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $dnn['keywords']);//On surligne les mots cles de la recherche
        }
}
else
{
        echo $dnn['keywords'];//On ne surligne pas
}
?></td>
        </tr>
<?php
}

?>
</table>
<?php
}else{
?>
<form action="" method="get">
Expression &agrave; rechercher: <input type="text" name="search" value="<?php echo $rec; ?>" /><br />
Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="all"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <input type="radio" name="type" value="exacte"<?php if($type==3){echo 'checked="checked"';} ?> /> Expression exacte<br />
Mettre en gras les mots recherch&eacute;s: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<?php
}
?>


par contre je voudrais faire une recherche dans le titre et j'ai fais comme ceci
Code PHP :
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT image1, name, keywords FROM download WHERE ';
if($type==1)
{//ayant un des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' name LIKE "%'.$mot.'%" AND keywords LIKE "%'.$mot.'%" OR';
        }
        $req .= ' 1=0';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' name LIKE "%'.$mot.'%" AND keywords LIKE "%'.$mot.'%" AND';
        }
        $req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
        $req .= 'name LIKE "%'.$rec.'%" AND keywords LIKE "%'.$rec.'%"';
}


donc dans ma base j'ai mis le nom en français et dans les mots clefs il est en anglais et dans je lance la recherche soit il trouve rien soit j'ai ine page blanche ou alors il cherche pendeant des minutes et cela bug

Merci pour tout
mardi 17 janvier 2012 à 13:31:37 | Re : Probleme script moteur de recherche

cod57

Réponse acceptée !

ok

ferme le post s.t.p. 'reponse acceptée'

merci

Bonne programmation !
mardi 17 janvier 2012 à 19:56:24 | Re : Probleme script moteur de recherche

McGyver59

ben j'ai juste un soucis encore je comprend pas

voici le soucis repris au dessus

je voudrais faire une recherche dans le titre et j'ai fais comme ceci
Code PHP :
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT image1, name, keywords FROM download WHERE ';
if($type==1)
{//ayant un des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' name LIKE "%'.$mot.'%" AND keywords LIKE "%'.$mot.'%" OR';
        }
        $req .= ' 1=0';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' name LIKE "%'.$mot.'%" AND keywords LIKE "%'.$mot.'%" AND';
        }
        $req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
        $req .= 'name LIKE "%'.$rec.'%" AND keywords LIKE "%'.$rec.'%"';
}


donc dans ma base j'ai mis le nom en français et dans les mots clefs il est en anglais et dans je lance la recherche soit il trouve rien soit j'ai ine page blanche ou alors il cherche pendeant des minutes et cela bug

Merci pour tout
mardi 17 janvier 2012 à 20:57:25 | Re : Probleme script moteur de recherche

McGyver59

Bon je pense avoir trouvé si on pouvait me donner confirmation ou correction

Pour la recharche dans les mots clefs et dans les titre je fais comme cela est-ce bon??
Code PHP :
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT image1, name, keywords FROM download WHERE ';
if($type==1)
{//ayant un des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
              $req .= ' keywords LIKE "%'.$mot.'%" OR (name LIKE "%'.$mot.'%") OR';
        }
        $req .= ' 1=0';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
        $mots = explode(' ',$rec);//En separre lexpression en mots cles
        foreach($mots as $mot)
        {
                $req .= ' (online = \'yes\' AND (keywords LIKE "%'.$mot.'%") OR (name LIKE "%'.$mot.'%")) AND';
        }
        $req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
		$req .= ' (online = \'yes\' AND (keywords LIKE "%'.$rec.'%") OR (name LIKE "%'.$rec.'%"))';
}


merci de vos reponses et de votre patience


Cette discussion est classée dans : script, code, recherche, mots, moteur


Répondre à ce message

Sujets en rapport avec ce message

script pour faire un moteur de recherche [ par aminagu ] bjr tout le monde j etais entrain de chercher d un code source pour faire un moteur de recherche et j ai compris le principe mais j arrive pas a c moteur de recherche en php [ par aminagu ] bonjours , j essey de faire un moteur de recherche en php , le systeme me donne le message d erreur suivant : /* LIKE '%inpt%'SELECT * FROM `table-m Moteur recherche SQL php [ par fregeal ] Bonjour Je cherche un moyen d'avoir un champs de recherche sql qui affiche les resultats sous forme d'un tableau mais tous les scritps que j'ai pus t Moteur de recherche [ par atoguum4ever ] aTomicK Salut à tous,je cherche a faire un moteur de recherche en php et j'ai cru comprendre sur le forum que l Moteur de Recherche [ par MAsterC ] Salut à tous,je suis en train de développé un moteur de recherche, puis il me manque seulement la "recherche par mot clé" c'est à dire que... si je ma moteur de recherche [ par rastafarye ] salut je suis a la recherche de code source ou d'aide sur des moteurs de recherche de type web (com google par ex bien sur je ne demande pas le code s Robot de recherche automatique PHP [ par ravendago ] Je souhaite créer un robot Internet destiné à  extraire des données d'un moteur de recherche(site distant).Le problème est:Il ya une base de données d Moteur de recherche interne [ par blaize21 ] Bonjour,je suis en train de développer un petit site de type agenda/annonce d'événements pour mon projet de fin d'année et je bute sur la mise en plac MOTEUR DE RECHERCHE [ par loupile ] bonjour, j'ai fais un moteur de recherche, oui mais voila il ne fonctionne que sur une chaine ... normale  je recupère la valeur de mon champ de reche probleme de moteur de recherche en php [ par elksibi ] Bonjour,Est ce que vous pouver m'aider a faire un moteur de recherche interne qui cherche un ou plusueurs mots dans toutes mes tables de la base pour


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales