Formulaire de recherche sur plusieurs mots clé (Mod) Formulaire de recherche sur plusieurs mots clé (Mod)
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Formulaire de recherche sur plusieurs mots clé (Mod)

Started by François Keller, January 26, 2005, 10:31:47 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

François Keller

Bonjour à tous,

je viens de terminer une modification du fichier search.php (déjà modifié par Pyap pour l'affichage des mots clé)  afin de pouvoir faire une recherche sur plusieurs mots clé.
Vous pouvez voir le formulaire en fonctionnement sur mon site http://membres.lycos.fr/photosfrantz
Etant débutant en php, soyez indulgents, tout n'est pas encore parfait en ce qui concerne la mise en page entre autre. ;)
si certains d'entre vous sont interresés, je vous mets le code
<?php
// ------------------------------------------------------------------------- //
// Coppermine Photo Gallery 1.3.1 //
// ------------------------------------------------------------------------- //
// Copyright (C) 2002,2004 Gregory DEMAR <gdemar@wanadoo.fr> //
// http://www.chezgreg.net/coppermine/ //
// ------------------------------------------------------------------------- //
// This program is free software; you can redistribute it and/or modify  //
// it under the terms of the GNU General Public License as published by  //
// the Free Software Foundation; either version 2 of the License, or//
// (at your option) any later version. //
// ------------------------------------------------------------------------- //

//***************************************************************************//
//* Modifié par Frantz Janvier 2005 . . . *// 
//* this Mod/Hack deSEARCH.PHP, permets une recherche sur plusieurs mots clé !  *// 
//* EXEMPLE : http://http://membres.lycos.fr/photosfrantz/ *//
//***************************************************************************//
//*  Si vous rencontrez un problème avec Coppermine,  *//
//* n'hÃ(c)sitez pas Ã  visiter le Forum COPPERMINE EN FRANCAIS ci-dessous  *//
//*  http://forum.coppermine-gallery.net/index.php?board=38.0 *//
//*  MERCI   *//
//***************************************************************************//

define('IN_COPPERMINE'true);
define('SEARCH_PHP'true);

require(
'include/init.inc.php');

pageheader($lang_search_php[0]);

starttable("500"'<center>Etape N°1: Choixissez le type d\'association des mot sclé</center>');
//echo "" ;
error_reporting(E_ALL E_NOTICE);
?>


<form method="post" >
<tr><td class=tableb><p align=center>
<input type="radio" name="typechoix"
<?php if($_POST["typechoix"]==" AND ")
         echo 
"CHECKED";?>

value=" AND "><b>ET</b>
<input type="radio" name="typechoix"
<?php if($_POST["typechoix"]==" OR ")
         echo 
"CHECKED";?>

value=" OR "><b>OU</b>
<br>




<?php
endtable
();
//echo "<br>";
// Select all keywords

$result mysql_query("select keywords from {$CONFIG['TABLE_PICTURES']}");
if (!
mysql_num_rows($result)) cpg_die(ERROR$lang_errors['non_exist_ap']);

// Find unique keywords
$keywords_array = array();


while (list(
$keywords) = mysql_fetch_row($result)) {
$array explode(" ",$keywords);
foreach(
$array as $word)
{
if (!
in_array($word,$keywords_array)) $keywords_array[] = $word;
}
}
starttable("500"'<center>Etape N°2: Sélectionnez les mots clé pour la recherche et Validez</center>');

?>


<?php
sort
($keywords_array);
$count count($keywords_array);
//echo "<br>";
echo "<center>$count Mots-Clef dans la base de données</center>";
// Result to table
echo "<tr><td class=\"keylink\"><p align=center>" ;
//affichage du choix d'association des mots clé
?>


<?php
// Affichage des mots clé avec checkbox
for ($i 1$i $count$i++) {
?>


<input type="checkbox" name="choix[]"
<? for ($k=0;$k<count($_POST["choix"]);$k++)
            if($keywords_array[$i]==$_POST["choix"][$k]) {
echo "CHECKED";
               break;
            } ?>
         value="<? echo $keywords_array[$i];?>"
      ><?php
echo "$keywords_array[$i];
}
?>

<br>
<input type="Submit" value="Validez">
<?php
echo"<br>";
if(
$_POST["choix"]) { ?>

   Vous avez choisi:

<?php  for ($i=0;$i<count($_POST["choix"]);$i++)
       
$recherche=$recherche.$_POST["choix"][$i].$_POST["typechoix"];
  
  
  }
echo
"<b>";
echo 
$recherche;
echo 
"</b>";
  
?>

  </form>
  <?php
//echo "</p></td></tr>" ;
//endtable();
//Envoi pour la recherche
starttable("500""<center>Etape N°3: Cliquez sur le bouton \"ENVOYER\" pour lancer la recherche</center>");
echo <<< EOT
  <form method="get"  action="thumbnails.php">
<td colspan="8" align="center" class="tablef">
<br>
<input type="submit" name="Rechercher">
  </td>
 <input type="hidden" name="album" value="search">
 <input type="hidden" name="type" value="full">
<input type="hidden" name="search" value="
$recherche">


 </form>
EOT;
endtable();
pagefooter();
ob_end_flush();

?>
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

Pascal YAP

Frantz,

  Je vois bien où tu veux en venir....
Mais je teste d'entrée un petit bug.
Lorsque l'on valide plusieur mots, ceux-ci sont coller les un aux autres. Ainsi lorsque l'on recheche floreinsecteiguanecolonne la moteur de recherche truve rien, forcément !

Un petit guide d'utilisation serait le bienvenue, par expl :
1/ Cocher les mots de votre requète.
2/ Valider votre choix auprès de notre moteur avant de lancer votre requète
3/ Lancer votre requète

çaõ bye

Pascal

François Keller

Pascal,
QuoteUn petit guide d'utilisation serait le bienvenue, par expl :
Evidemment tu as raison   ;)
On oublie facilement, lorsque l'on fait quelque chose que les utilisateurs n'ont pas été dans la logique du développement avec nous  :-\\
Je m'en vais modifier ça au plus vite.
Je vais aussi essayer de l'internationaliser (mais ça c'est un autre problème)

Merci pour la remarque judicieuse
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

François Keller

Bonjour,

Voilà, j'ai modifier un peu la mise en page du module de recherche en y détaillant les étapes à suivre.
Le code du 1er message est le nouveau. Si vous voulez l'utiliser, il remplace celui du fichier serch.php
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

Pascal YAP

Frantz ,

Le micro tutorial aide à la compréhension de ta recherche.
Pourtant, le fait de devoir cliquer deux fois n'est-il pas gèant ?
As-tu le moyen de combiner "Valider" et "Soumettre la requète" en un seul bouton ?

No Bug  (M$IE6;firefox)

Pascal

François Keller

Pascal,

QuoteAs-tu le moyen de combiner "Valider" et "Soumettre la requète" en un seul bouton ?

C'est un problème que j'essaye de résoudre depuis pas mal d'heures, mais pour l'instant je n'ai pas encore trouvé. En effet, il y a deux formulaires dans le code et il faut valider le premier pour récuperer les données cochées avant d'envoyer la requete pour la recherche.

Je continue sur cette voie, mais comme je suis archi débutant en Php, ça rique de prendre un moment.

Bien entendu si quelqu'un à une idée je suis preneur. :)

A terme, j'aimerais pouvoir proposer une page de recherche avec plusieures possibilités de recherche:
Il y à un sujet en anglais la dessus que je suis en train de décortiquer pour essayer de trouver une solutioN

Je vous tiens au courrant
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog