Accueil > Forum > > > > Probleme script moteur de recherche
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 à 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és: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<h2>Ré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 à 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és: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<h2>Ré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 à 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é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
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|