Page 1 sur 1

moteur de recherche fulltext

Posté : 14 avr. 2007, 01:43
par maelinn
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 !

Posté : 14 avr. 2007, 22:05
par @rthur
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?

Posté : 15 avr. 2007, 11:19
par Invité
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 !

Posté : 15 avr. 2007, 13:22
par ouckileou
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.

Posté : 15 avr. 2007, 14:16
par Invité
C'était ça ! Merci beaucoup :D

Posté : 15 avr. 2007, 14:19
par Invité
[Probleme RESOLU]