Moteur de recherche

Fermé
jypy - 5 janv. 2009 à 16:43
 jypy - 5 janv. 2009 à 17:04
Bonjour,
salut a tous.j'ai fait un script de recherche que voici:

<?php
if(isset($_POST['mot']) && $_POST['mot'] != '')
{
require_once('connect_base.php');
/******************************************************************
* VARIABLES A MODIFIER
******************************************************************/

$limit=2;// NOMBRE DE RESULTATS PAR PAGE
$script_name="recherche.php";// NOM DE CE SCRIPT
$et_ou="or";// RECHERCHE AVEC TOUS LES MOTS : METTEZ "and"
// RECHERCHER LES PAGES QUI CONTIENNENT AU MOINS UN MOT : METTEZ "or"


/******************************************************************
* PROGRAMME PRINCIPAL
******************************************************************/
$mot=$_POST['mot'];
$mot=strtolower($mot);
$mots=split(" ",$mot);
$nombre_mots=count($mots);

$z=1;
$texte="Pages contenant <b>".$mots[0]."</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>".$mots[$z]."</b>";
$z++;
}
$debut="";
$page="";
if($debut==""){$debut=0;}
$debut=$page*$limit;

// NOMBRE TOTAL D'ENREGISTREMENTS REPONDANT A LA REQUETE
$req1="select count(*) from recherche where mots like '$phrase' order by id" ;
$requete=mysql_query($req1);
$nb_total=mysql_result($requete,0,"count(*)");
//$nb_total=mysql_num_rows($requete); //$nb_total=mysql_result($requete,0,"count(*)");

$req2="select * from recherche where mots like $phrase limit $debut,$limit";
$requete=mysql_query($req2);
$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é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> \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>) ";}
else {echo "<b>($j)</b> ";}
$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();
}
?>
********************************************************************************************
le probleme est que quand je teste ce programme il ne passe pas seulement qu'une page vide apparait.
alors est ce qu'il y une bonne ame qui peut m'aider??
merci d'avance!!!!
A voir également:

1 réponse

bonjour,
voici un script pour etablir un forum sur mon site mais lorsque je le teste des messages d'erreur qui me sont incomprehensible s'affichent

<?php
session_start();
if ((!isset($_SESSION['login'])) || ($_SESSION['login'] == ''))
{
// La variable $_SESSION['login'] n'existe pas, ou bien elle est vide
// <=> la personne ne s'est PAS connectée
echo '<p>Vous devez vous <a href="index.php">connecter</a>.</p>'."\n";
exit();
}
?>
<?
// On teste si on est en local ou non
$isLocal = ($_SERVER["SERVER_NAME"]=="localhost");
// === CONNEXION A LA BD ===
// connexion
mysql_connect($sql_serveur,$sql_user,$sql_passwd);
mysql_select_db($sql_bdd);
// === AJOUT DU MESSAGE EVENTUEL ===
if(@$_POST['message']) 
{
// Requête d'insertion (ID sera mis à jour automatiquement)
$SQL = "INSERT into forum_messages(quand,login,email,message,reponse)"
." VALUES(" . time()
.",'".$_POST["login"]."'"
.",'".$_POST["email"]."'"
.",'".addslashes($_POST["message"])."'"
.",'".$_POST["reponse"]."'"
.")";
mysql_query($SQL);

// Réponse = n° auto si message initial
if(!$_POST["reponse"]) 
{
$id = mysql_insert_id();
mysql_query("UPDATE forum_messages"
. " SET reponse=".$id." WHERE id=".$id);
// Envoi de la réponse par email
if(!$isLocal&&($_POST["reponse"]!="0")) 
{
// Gestionnaire ou répondeur du forum
$from = "From: forum@asp-php.net";
// Sujet du mail
$sujet = "Reponse a votre message sur le forum";
// Sélection des destinataires
$SQL = "SELECT * FROM forum_messages WHERE reponse="
. $_POST["reponse"]." ORDER BY id DESC";
$res = mysql_query($SQL);
// Ne pas envoyer à l'auteur de la réponse
$temp=",".$_POST["email"].",";
// Pour chaque adresse
while($val=mysql_fetch_array($res)) 
{
// Déjà envoyé ?
if(!strpos(" ".$temp,",".$val["email"].",")) 
{
// Corps du message
$body = "Bonjour ".$val["login"].",\n\n"
. "Un visiteur a repondu a votre message sur le forum :"
. "\n".str_repeat("_",40)."\n"
. $_POST["login"]." >> ".$_POST["message"]
. "\n".str_repeat("_",40)."\n"
. "\nen reponse a votre message du ".date("d/m/Y",$val["quand"])." :"
. "\n".str_repeat("_",40)."\n"
. $val["message"]
. "\n".str_repeat("_",40)."\n"
. "\nPour poursuivre la discussion, veuillez vous rendre a l'adresse\n"
. "http://".$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"]
. "?post=".$_POST["reponse"]
."\n\nA bientot\n";
// Envoi du mail
mail($val["email"],$sujet,$body,$from);
// mémorise l'adresse
$temp .= $val["email"] . ",";
}
}
}

// Mémorisation des login/email dans un cookie
setcookie("login",$_POST["login"],time()+30*24*3600);
setcookie("email",$_POST["email"],time()+30*24*3600);
mysql_close();
Header("Location: index.php");
}

// === AFFICHAGE DE LA PAGE ===

?>

*******************************************************************************************
voici son formulaire:

<table>
<form method="post" action="forum.php" name="form1">
<tr><td align="right">Login</td>
<input name="login" maxlength="15" value="<?php echo @$_COOKIE['login'] ?>">
</td><td rowspan="3">
<textarea name="message" cols="60" rows="5"></textarea>
</td>
</tr><tr>
<td align="right">Email</td><td>
<input name="email" maxlength="50" value="<? echo @$_COOKIE["email"]?>">
</td>
</tr><tr>
<td colspan="2" align="center">
<input type="button" value="Nouveau sujet" onClick="repond(0)">
<input type="hidden" name="reponse" value="0">

</td>
</tr>
</form>
</table>
*******************************************************************************************
alors j'ai besoin de votre aide pour me sortir de cette galere
merci!!!!!!!!
0