Page 1 sur 1

Recherche multicritères

Posté : 11 juin 2005, 11:52
par pixfacto
Bonjour,

Je souhaiterais récupérer le résultat d'une recherche multicritères.
Cumulé une recherche par mots clés à une sélection de case à cocher.
Je parviens à obtenir l'un où l'autre résultat, mais pas le cumul des 2 critères de recherche.
Voici le code de ma page "résultat".

<?php
$criteres=implode(",",$_POST["VARCase"]);
mysql_select_db($database_InFolio, $InFolio);
$request="select * from educa where id_fiche_doc in ($criteres) AND mot_cle LIKE '%VARCle%'";
$request = mysql_query($request, $InFolio) or die(mysql_error());
$row_request = mysql_fetch_assoc($request);
$totalRows_request = mysql_num_rows($request);
?>


Quelqu'un peut-il m'aider?

Merci

Posté : 11 juin 2005, 15:09
par DocType
:?
Pas tout pigé sur ce coup là :roll:

Posté : 11 juin 2005, 15:14
par Cyrano
Si tu as un nombre variable de critères de recherche, il faut construire dynamiquement ta requête pour ajuster le nombre de clauses WHERE au nombre de cases cochées.

Posté : 11 juin 2005, 16:45
par Invité
Il s'agit d'une bibliothèque où j'ai un module de recherche avec un champ pour faire une recherche par mot clé et des cases à cocher pour restreindre la recherche sur un certain type de document (ex.: livres, brochures, rapport,...).

Je parviens soit à faire une recherche par mot clé soit une recherche sur les cases cochées.

Si j'utilese :
"select * from educa where id_fiche_doc in ($criteres)";
ou
"select * from educa mot_cle LIKE '%VARCle%'";

c'est ok, cependant si j'associe les deux comme dans mon 1er message, ça foire!

Y a-t-il une possibilité de compiler les deux?
Merci de votre patience

Posté : 11 juin 2005, 17:26
par Cyrano

Code : Tout sélectionner

select * from educa where id_fiche_doc in ($criteres) OR mot_cle LIKE '%VARCle%';
Essaye avec ça :)

Posté : 11 juin 2005, 17:41
par Invité
Marche pô :?
Il ne tiens pas compte du mot clé. Seules les cases cochées sont prises en compte dans les résultats de la recherche.

Et si j'écris juste un mot clé et que je coche aucune case, j'obtien un message d'erreur du genre :
Warning: implode(): Bad arguments. in c:\.... on line 3
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ') OR mot_cle LIKE '%VARCle%'' at line 1
voici la ligne 3 : $criteres=implode(",",$_POST["VARCase"]);

Pierre

Posté : 11 juin 2005, 17:48
par Cyrano
ta variable $critere est un tableau ?

Posté : 15 juin 2005, 16:15
par Invité
Non, pas à ce que je sache.



Pierre