moteur de recherche fulltext

maelinn
Invité n'ayant pas de compte PHPfrance

14 avr. 2007, 01:43

Bonjour !

J'ai un problème avec un moteur de recherche que j'ai fait. Il fonctionne en local mais quand je le met sur le net, les recherches ne renvoient jamais aucune réponse.

Si vous avez une idée, voila mon code :
if (isset($_POST['mot_cle']) AND !empty($_POST['mot_cle']))
			{
		$mot_cle = ($_POST['mot_cle']);
    	
		$retour = mysql_query("SELECT * FROM livres WHERE MATCH(mot_cle) AGAINST('$mot_cle')") or die("Erreur MySQL : " . mysql_error());
		while ($donnees = mysql_fetch_array($retour)) 
			{
			$titre = $donnees['titre'];
			$auteur_nom = $donnees['auteur_nom'];
			$auteur_prenom = $donnees['auteur_prenom'];
			$contenu = $donnees['contenu'];
			?>
			<ul>
			<li>
			<?php echo stripslashes($donnees['titre']); ?> de
			<?php echo ($donnees['auteur_prenom']); ?> <?php echo ($donnees['auteur_nom']); ?> 
			>><?php echo '<a href="lire.php?lire=' . $donnees['id'] . '">'; ?> <strong> Lire...</strong></a><br>
			==> Mots clés : <?php echo ($donnees['mot_cle']); ?>
			</ul>
			<?php
			} // Fin de la boucle qui liste les news
				
		if (isset($_GET['lire'])) // Si on demande de lire une news
			{
   				?>
				<div class="news">
  				<h2>
       			<?php echo $donnees['titre']; ?>
      			<em>de <?php echo $donnees['auteur']; ?></em>
			    </h2>  
			    <p>
			    <?php
		 	   // On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
			    $contenu = nl2br(stripslashes($donnees['contenu']));
			    echo $contenu;
			    ?>
			    </p>
				</div>
				<?php
			}	
			
			}
				?>
Merci !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

14 avr. 2007, 22:05

Bonjour,

Tu es sûr d'avoir créé les index sur ta table MySQL?
Si tu exécutes ta requêtes avec phpMyAdmin sur le serveur, ça fonctionne?
Quand tout le reste a échoué, lisez le mode d'emploi...

Invité
Invité n'ayant pas de compte PHPfrance

15 avr. 2007, 11:19

Effectivement, quand j'exécute la requête sur le serveur, ça ne retourne aucune réponse non plus; J'ai vérifié la structure de ma table et j'ai même importé la table que j'ai en local pour être sure que ce soit la même mais toujours aucun résultat.

Je vous mets la structure ici, on ne sait jamais...

-- Structure de la table `livres`
--

CREATE TABLE `livres` (
`id` int(11) NOT NULL auto_increment,
`titre` varchar(50) NOT NULL default '',
`auteur_prenom` varchar(50) NOT NULL default '',
`auteur_nom` varchar(50) NOT NULL default '',
`mot_cle` text NOT NULL,
`epoque` varchar(20) NOT NULL default '',
`genre` varchar(20) NOT NULL default '',
`contenu` text NOT NULL,
`timestamp` bigint(20) NOT NULL default '0',
`validation` tinyint(4) NOT NULL default '1',
KEY `id` (`id`),
FULLTEXT KEY `mot_cle` (`mot_cle`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;

Merci de votre aide !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 avr. 2007, 13:22

Est-ce que tu as suffisament d'entrées pour que des résultats soient renvoyées ?

Si tu as seulement deux entrées différentes, tu n'auras jamais rien. C'est expliqué dans la doc, je te laisse aller voir.

Invité
Invité n'ayant pas de compte PHPfrance

15 avr. 2007, 14:16

C'était ça ! Merci beaucoup :D

Invité
Invité n'ayant pas de compte PHPfrance

15 avr. 2007, 14:19

[Probleme RESOLU]