Moteur de recherche...

Statut
N'est pas ouverte pour d'autres réponses.
Bonjour,

Je me suis servis d'un script de PHPINFO pour avoir créer mon moteur mais j'ai quelques problèmes...Je n'arrive aps a le faire marcher ! Lorsque je fais une recherche ça me donne une page blanche !

formulaire classique :
Code:
<form method="post" action="search.php">
  <input type="text" name="q">
  <input type="submit" name="Submit" value="Rechercher">
</form>


Code:
<?php
$host = "localhost";
$user = "XXXXXX";
$passwd = "XXXXXX";
$db = "XXXXXXXXXX";

// on passe les mots recherchés en minuscules
$q = strtolower($q);

// on remplace les ' + , :  par des espaces
$mots = str_replace('+', ' ', trim($q));
$mots = str_replace('\'', ' ', $mots);
$mots = str_replace(',', ' ', $mots);
$mots = str_replace(':', ' ', $mots);

// on place les differents mots dans un tableau
$tab = explode(' ' , $mots);

// on compte le nbr d'élément du tableau.
$nb = count($tab);

//on prépare la requête SQL.
$sql = "SELECT * FROM moteur WHERE keywords LIKE \'%$tab[0]%\' ";

// on boucle pour integrer tous les mots dans la requête
for($i = 1; $i < $nb; $i++) {
  $sql .= "OR keywords LIKE \'%$tab[$i]%\' ";
}

// on se connecte au serveur
mysql_connect($host, $user, $passwd);

// on execute la requête SQL.
$result = mysql_db_query($db, $sql);

if ($result) {
  
  if (mysql_num_rows($result) == 0) {

    // Si il n'y a pas de résultats
    echo "<center><b>Pas de Résultat</b></center><br>";

  } else {

    echo "<center><b>Résultat(s)</b></center><br>";
    while($data = mysql_fetch_array($result)) {
      echo '<br>'.$data['title'].'<br>';
      echo ''.$data['description'].'<br>';
      echo ''.$data['url'].'<br>';
    }
    mysql_free_result($result);
  }
}
?>

Bon ben merci à ceux qui trouverons l'erreur ! :wink:
 
Ah j'ai oublié :

Une table toute simple :

Code:
CREATE TABLE moteur (
title varchar(255) NOT NULL,
url varchar(255) NOT NULL,
description text NOT NULL,
keywords varchar(255) NOT NULL
);
 
et si tu mettais un else au

Code:
if ($result) {
?
Code:
if ($result) {
 
  if (mysql_num_rows($result) == 0) {

...
  } else {

...
    }
    mysql_free_result($result);
  }
} 
else {
   echo "<center><b>Problème de connexio à la base de données<br>".mysql_error()."</b></center>"
}
 
heu, et à part ça, pour moi dans dtes 2 $sql, c'est pas des \' mais des ' simples...

Code:
$sql = "SELECT * FROM moteur WHERE keywords LIKE '%$tab[0]%' ";

// on boucle pour integrer tous les mots dans la requête
for($i = 1; $i < $nb; $i++) {
  $sql .= "OR keywords LIKE '%$tab[$i]%' ";
 
Statut
N'est pas ouverte pour d'autres réponses.

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut