moteur de recherche interne

moteur de recherche interne - PHP - Programmation

Marsh Posté le 26-09-2005 à 21:00:04    

Bonjour je souhaiterai faire un moteur de recherche interne en php  
 
j'aimerai ne pas avoir a taper de mot clé dans le code, faire en sorte kil reconnaissace tout seul les mots que l'on recherche, comment m'y prendrre?

Reply

Marsh Posté le 26-09-2005 à 21:00:04   

Reply

Marsh Posté le 26-09-2005 à 21:02:28    

c'est moi qui suis con (en profitez pas hein!! :D)ou les 3/4 des questions posees sur  le forum sont incomprehensibles?

Reply

Marsh Posté le 26-09-2005 à 21:16:55    

ben j'dois être con aussi parce que je comprendasce pas bien la question.

Reply

Marsh Posté le 26-09-2005 à 21:17:25    

lol désolé jai du mal m'exprimé... je recomence
 
Donc dans ma page jai créer un bouton rechercher pour comme son nom l'indique recherché une page dans l'ensemble de mon site grâce à un mot qu'aurait tapé l'internaute.
 
Je ne connais pas le le langage php...j'aimerai donc un petit coup de pouce pour réalisé un moteur de recherche.
Ce que j'aimerai c'est que le script ne m'obliqe pas à définir les mot clés moi meme (a taper dans le code) je c pas si c'est faisable...voila c'est mieu?

Reply

Marsh Posté le 26-09-2005 à 21:31:52    

avec la premiere question au moins je comprenais pas que tu voulais un script tout fait
pour un petit coup de pouce pas de probleme  
mais commence par nous montrer ce que tu as fait
tu peux commencer par la:
http://www.phpinfo.net/articles/article_moteur.html
ou bien la:
http://www.phpinfo.net/articles/article_moteur.html
y en a plein sur le net

Reply

Marsh Posté le 26-09-2005 à 21:39:01    

betsamee a écrit :

c'est moi qui suis con (en profitez pas hein!! :D)ou les 3/4 des questions posees sur  le forum sont incomprehensibles?


Particulièrement dans les cat PHP et HTML.   [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 26-09-2005 à 21:54:43    

Voila ce que j'ai fait :  
 

Citation :

html>
<head>
<title>Résultat de la recherche</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body text="#FFFFFF" bgcolor="#000000" link="#9999FF" vlink="#6699FF" alink="#FFFF00">
 
<font face="Verdana" size=2>
 
<?
/******************************************************************
* VARIABLES A MODIFIER
******************************************************************/
 
// NOMBRE DE RESULTATS PAR PAGE
$limit=5;
 
// NOM DE CE SCRIPT
$script_name="recherche.php3";
 
// SERVEUR SQL
$sql_serveur="localhost";
 
// LOGIN SQL
$sql_user="blabla";
 
// MOT DE PASSE SQL
$sql_passwd="blabla";
 
// BASE DE DONNEE
$sql_bdd="blabla";
 
// 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" );
 
$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>
</body>
</html>


 
Mais j'ai une erreur :  
 

Citation :

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home10/eq42432/html/recherche.php3 on line 65
 
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home10/eq42432/html/recherche.php3 on line 68
Désolé, aucune page de ce site ne contient ...


 
Je ne comprend pas

Reply

Marsh Posté le 26-09-2005 à 21:56:26    

un moteur de recherche tout fait pour des pages statique et sans savoir coder?
=> voir google.
 
EDIT : Les lignes 65 et 68, c'est lesquelles? Pour ton erreur, ca veut dire que la variable qui aurait du contenir le résultat de la requette n'en contient pas. Ta requette a surement foiré et c'est surement par ce que t'as pas entouré $phrase par des \" . Et puis sort les variables des chaines de caractéres, ca sera plus facile de relire le code aprés et ca limitera les rrisques d'erreurs. ;)


Message édité par omega2 le 26-09-2005 à 22:04:52
Reply

Marsh Posté le 26-09-2005 à 22:05:14    

aïe ; zut alor, je ne sait pas pourquoi ça a foiré pourtant j'ai l'impression s'avoir fait ce qu'il fallait

Reply

Marsh Posté le 26-09-2005 à 22:05:49    

je vai voir ça

Reply

Marsh Posté le 26-09-2005 à 22:05:49   

Reply

Marsh Posté le 26-09-2005 à 22:09:52    

fait un petit echo de la chaine que tu balances a mysql_query

Reply

Marsh Posté le 26-09-2005 à 22:13:09    

ça donne quoi niveau code ? parce que je suis encore débutant le langage je ne le connais pas encore

Reply

Marsh Posté le 26-09-2005 à 22:20:53    

Citation :

Voila ce que j'ai fait :

Suivit d'un code assez complet créé en moins d'une heure et plus loin

Citation :

ça donne quoi niveau code ? parce que je suis encore débutant le langage je ne le connais pas encore

Quand on te conseille de faire un echo de la chaine envoyé à la base de donnée.
 
Ca me donne l'impression qu'en fait, c'est pas toi qu'a fait le script mis plus haut. :( J'espéres que je me trompe et que t'es juste rapide à créer un script de ce genre. :)

Reply

Marsh Posté le 26-09-2005 à 22:25:46    


jai pris un script d''un moteur de recherche qui correspondait à ce que je voulais et j'ai modifié quelques trucs mais rien dans la partie script.
Et là ça bloque je compren pas.. sniff je suis sur mon site depuis toute l'aprem je galère.
Jarrive pas à comprendre cette erreure, au niveau de la base sql ya rien a faire?

Reply

Marsh Posté le 26-09-2005 à 22:28:04    

$nb_total=mysql_result($requete,0,"count(*)" ); // ligne 65
 
 
$num=mysql_num_rows($requete); // ligne 68
 
Voici les 2 lignes correspondant à l'erreur

Reply

Marsh Posté le 26-09-2005 à 22:48:40    

comme te l'a justement dit omega2
la syntaxe de $requete est probablement fausse

Reply

Marsh Posté le 26-09-2005 à 22:52:07    

ok je vois, et niveau correction ça donne quoi je doit changer quelque chose que sur ces varaibles?

Reply

Marsh Posté le 26-09-2005 à 22:54:38    

sais tu ce qu'est une requete?


Message édité par betsamee le 26-09-2005 à 22:54:53
Reply

Marsh Posté le 26-09-2005 à 22:58:31    

heu... ça permet de poser une questionà la base de donnée?

Reply

Marsh Posté le 26-09-2005 à 23:04:25    

voila
il faut que la question soit formulee dans la langue que comprend ton moteur de bases de donnees (en l'occurence MySQL)
apparement la il aime pas ce que tu lui envoies
aurais tu l'ammabilite d'ecrire juste au dessus de ton mysql_query la ligne:
echo "select count(*) from recherche where mots like $phrase order by id";
et de nous dire ce que ca te retourne?


Message édité par betsamee le 26-09-2005 à 23:04:57
Reply

Marsh Posté le 26-09-2005 à 23:11:02    

voila  
 
Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in /home10/eq42432/html/recherche.php3 on line 65

Reply

Marsh Posté le 26-09-2005 à 23:12:40    

betsamee > Vu la requette, pas besoin d'un echo pour voir l'erreur.
lilougirl8> like attend une chaine de caractére ou un nom de champ de chaque côté. Un nom de champ n'est pas entre " tandis que pour une chaine de caractére, il faut mettre des " autour du texte.
Vu que t'as commencé la chaine de texte par " il faut échaper (rajouter un \ devant pour indiquer à php qu'il ne doit pas considérer le " comme une fin de chaine de caractére) les deux " entourant le texte utilisé par le like (le texte contenu dans la variable) Donc ca donne :
$requete=mysql_db_query("$sql_bdd","select count(*) from recherche where mots like \"$phrase\" order by id",$db_link);  
 
 
je te laisse modifier l'autre requette de la même maniére pour que tu voye si t'as bien compris.

Reply

Marsh Posté le 26-09-2005 à 23:17:38    

lilougirl8 a écrit :

voila  
 
Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in /home10/eq42432/html/recherche.php3 on line 65

Traduction : HE HO, il est où le ; qui indique la fin de l'instruction?

Reply

Marsh Posté le 26-09-2005 à 23:26:06    

Citation :

select count(*) from recherche where mots like '%%' order by id
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home10/eq42432/html/recherche.php3 on line 66
select count(*) from recherche where mots like '%%' order by id
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home10/eq42432/html/recherche.php3 on line 70
Désolé, aucune page de ce site ne contient ...


 
j'ai rajouter 2 echo au dessus des 2 requete et ça me met ça je compren pas et j'ai corrigé les \"$phrase\"

Reply

Marsh Posté le 26-09-2005 à 23:38:35    

ok, fallait pas de \" vu que $phrase contenant déjà des ' au début et à la fin de son contenu. j'avais pas vu que c'était déjà rajouté plus haut dans la variable.
 
Bon, alors on va voir niveau mysql l'erreur indiqué : rajoute un "or mysql_error() " juste avant le ; qui suit le mysql_db_query.

Reply

Marsh Posté le 26-09-2005 à 23:44:17    

$requete=mysql_db_query("$sql_bdd","select count(*) from recherche where mots like $phrase order by id",$db_link);"or mysql_error() "
 
erreur : Parse error: parse error, unexpected T_VARIABLE in /home10/eq42432/html/recherche.php3 on line 65

Reply

Marsh Posté le 26-09-2005 à 23:57:28    

bon je vais me coucher je repndrais tout ça demain merci pour votre aide

Reply

Marsh Posté le 27-09-2005 à 07:10:33    

as tu la bonne bdd??

Reply

Marsh Posté le 27-09-2005 à 07:26:10    

Vous en etes encore a lui expliquer ca? Vous etes au courrant qu'on est pas sencés faire du support apres telechargement?
Meme si c'est un jupon qui le demande?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-09-2005 à 08:08:40    

esox_ch a écrit :

Vous en etes encore a lui expliquer ca? Vous etes au courrant qu'on est pas sencés faire du support apres telechargement?
Meme si c'est un jupon qui le demande?


le cas est litigieux
en plus imagine qu'elle soit jolie  :love:  

Reply

Marsh Posté le 27-09-2005 à 08:09:47    

Je etre suisse :D . Je pas reflechir, je appliquer la loi :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-09-2005 à 08:11:22    

je comprendre :D
c'est vrai l'histoire du suisse qui a appele les flics pour faire virer ses invites de son jardin?

Reply

Marsh Posté le 27-09-2005 à 08:19:49    

Beaucoup de legendes entourrent notre petit pays de mystere ...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-09-2005 à 08:25:11    

c'est beau la suisse

Reply

Marsh Posté le 27-09-2005 à 08:26:38    

A fond , j'aime ce pays :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 27-09-2005 à 08:35:11    

putain de merde me cassez pas mon coup!

Reply

Marsh Posté le 27-09-2005 à 08:40:50    

lilougirl8 > Je laisse tomber, t'arrives même pas à suivre à la lettre les instructions qu'on te donne et t'as visiblement pas envie d'apprendre ne seraisse que les bases du php.
Plustôt que de faire perdre du temps à tout le monde avec un truc que tu comprends pas, utilises directement le moteur de recherche de google : http://www.google.fr/intl/fr/searchcode.html Vu ton niveau, c'est quasiment la seule solution valable à court terme.

Reply

Marsh Posté le 27-09-2005 à 11:00:53    

oula je suis de retour lol ça a parlé quand j'étais pas là...bon désolé pour mon niveau mais bon on comence toujour par le début, c pr ma société que je fais ça et je vous avourai que je ne connais pas le code, jamais fais d'étude la dedan et pas le temps de bouqiner pour l'instant,je cherche donc une solution a cours terme en attendant de pouvoir en connaitre plus par moi meme. je comprend pas ou ça a merder enfin bon ben tan pi

Reply

Marsh Posté le 27-09-2005 à 11:09:01    

j'aurais bien continue a t'aider [:zebra33] mais c'est vrai que tu ne comprends meme pas ce que tu fais et qu'on va pas y arriver si tu ne t'y mets pas un peu

Reply

Marsh Posté le 27-09-2005 à 13:13:21    

pour la recherche en utilisant google, il faut rajouter

Citation :

<input TYPE="checkbox" NAME="sitesearch" VALUE="monsite.com"
CHECKED>Rechercher sur ce site uniquement

entre le <td> et le </td> du code indiqué par google et ce en changeant monsite.com par le nom de domaine de votre site pour que la recherche soit limité à votre site web.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed