8795 sujets

Développement web côté serveur, CMS

Salut,

Grâce au module de recherche du site image je souhaiterai réduire les résultats d'une requête à 2 champs : films et auteurs
(les résultats actuels sont bien trop vagues car la recherche balaye absolument TOUT le contenu des fiches cinéma)

le site :
http://www.site-image.eu

Pouvez-vous m'aider merci !
O
Modifié par naano (05 Mar 2010 - 16:20)
Je pense que tu peux regarder du côté des REGEX pour commencer, afin de ne séléctionner que les entrée qui contiennent au moins un mot de la recherche par exemple.

Le soucis de cette méthode, c'est qu'elle ne permet pas de classer les résultats par pertinance...

Tu as un topic ici (http://forum.alsacreations.com/topic.php?fid=20&tid=42435&s=moteur) ou la solution a semble-t-il été trouvée. Bonne chance.
merci !

je suis allé faire un tour sur resultatfilm.php je crois que c'est là que ça se passe et LÀ j'en appelle à vos compétences merci!


<?php require('Connections/crac.php'); ?>
<?php require('fonctions/requete.php'); ?>
<?php
// cette requete recupere le nombre d'enregistrements en fonction des critères envoyés à requetecount //
mysql_select_db($database_crac, $crac);
$query_Rec_total = requetecount($dispo, $genre, $ecriture, $mots);
$Rec_total = mysql_query($query_Rec_total, $crac) or die(mysql_error());
$row_Rec_total = mysql_fetch_assoc($Rec_total);
$totalRows_Rec_total = mysql_num_rows($Rec_total);
?>
<?php
// on determine le numero de la page, sinon c'est la premiere //
$nb = 10;
if(empty($_GET['p'])) $p = 1;
$debut = ($p - 1) * $nb;
// nombre de resultats par pages //
// nombre total d'enregistrements de Rec_total //
$total = $row_Rec_total['nb'];
// calcul du nombre de pages
$nbpages = ceil($total / $nb);
?>
<?php
mysql_select_db($database_crac, $crac);
$query_Rec_result = requete($_GET['dispo'], $_GET['genre'], $_GET['ecriture'], $_GET['mots'], $debut, $nb);
$Rec_result = mysql_query($query_Rec_result, $crac) or die(mysql_error());
$row_Rec_result = mysql_fetch_assoc($Rec_result);
$totalRows_Rec_result = mysql_num_rows($Rec_result);
?>

	<a href="?page=accueil">Accueil</a> > <a href="?page=recherche">Rechercher un film ou un auteur</a> 
	> Résultat de votre requête.<br>
	Pour consulter la fiche réalisateur cliquez sur son nom.<br><br>
	
  <p> 
    <?php
	echo '<strong>'.$total.'</strong> fiche';
	if ($total > 1) echo '(s)';
	echo '  (page : '.$p.' sur '.$nbpages.')';
	?>
  </p>
<?php if($totalRows_Rec_result>0) { ?>

<?php do { ?>
<div class="ficheresultat">
<strong><?php echo $row_Rec_result['Titre']; ?></strong><br>
  <?php if ($row_Rec_result['IdAuteur'] != 0) { ?>
  <a href="ficheauteur.php?id=<?php echo $row_Rec_result['IdAuteur']; ?>"><?php echo $row_Rec_result['Auteur']; ?></a><br>
  <?php } ?>
  <?php echo $row_Rec_result['Pays']; ?> <?php echo $row_Rec_result['Annee']; ?><br>
  <?php echo $row_Rec_result['nomgenre']; ?><br>
  <?php echo $row_Rec_result['ecriture']; ?><br>
  <?php echo affichitem ('imagedispositif',$row_Rec_result['Dispositifs'],'dispositif'); ?><br>
  <a href="fichefilm.php?id=<?php echo $row_Rec_result['Id']; ?>">> 
  Consulter la fiche complète</a>
</div>
<?php } while ($row_Rec_result = mysql_fetch_assoc($Rec_result)); ?>
<?php } else { echo 'Aucun film dans cette catégorie';}?>
<?php
// parcours du résultat //
if ($nbpages > 1) {
	echo "Pages de résultats : ";
	for($i = 1;$i <= $nbpages;$i++){
 	echo "<a href=\"$PHP_SELF?page=resultatfilm&dispo=$dispo&genre=$genre&ecriture=$ecriture&mots=$mots&p=$i&total=$total\">$i</a>";
	if($i < $nbpages) echo " | ";
	}
}
?>
<?php
mysql_free_result($Rec_result);
?>

Modifié par naano (05 Mar 2010 - 17:50)
Hello,

en tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

upload/1-code.gif

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que l'Aide (dont le lien est fourni lors de l'inscription) contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Merci pour la mise en page.

Pour ce qui est de ta question il faudrait reprendre les choses en amont. Par exemple permettre de choisir (grâce à des INPUT checkbox) de sélectionner dans quels champs doit s'effectuer la recherche (titre, film, auteur, pays, description, etc.) puis de construire la requête dynamiquement (avec quelque chose du genre titre LIKE '%mot%' OR auteur LIKE '%mot%' ou bien en utilisant des indexes FULLTEXT).
Modifié par Heyoan (05 Mar 2010 - 18:14)