[SQL] moteur de recherche avec trois critères
Fermé
Xtrang
-
26 avril 2005 à 16:40
Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 - 26 avril 2005 à 17:01
Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 - 26 avril 2005 à 17:01
A voir également:
- [SQL] moteur de recherche avec trois critères
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Google moteur de recherche page d'accueil - Guide
- Installer qwant moteur de recherche - Télécharger - Navigateurs
- Moteur de recherche sans censure - Accueil - Services en ligne
- Recherche adresse - Guide
2 réponses
Kobaya
Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
214
26 avril 2005 à 16:53
26 avril 2005 à 16:53
hello,
1/ pour commencer les %% ne servent à rien, un seul suffit. Donc :
$query_cat = sprintf("SELECT * FROM m_assos WHERE categorie LIKE '%s%' AND soucat LIKE '%s%' AND departement = '%s'", $colname_cat, $colname2_cat, $colname3_cat,);
2/ le champ departement est numérique doncpas de s dans ce champ
$query_cat = sprintf("SELECT * FROM m_assos WHERE categorie LIKE '%s%' AND soucat LIKE '%s%' AND departement = " & intDep & ", $colname_cat, $colname2_cat, $colname3_cat,);
intDep est une variable contenant le numéro de département voulu.
avec cette requête, tu ramènes les enregistrements où categorie contient la lettre s, soucat contient la lettre s et oùle département est égal à la au contenu de la variable intDep
1/ pour commencer les %% ne servent à rien, un seul suffit. Donc :
$query_cat = sprintf("SELECT * FROM m_assos WHERE categorie LIKE '%s%' AND soucat LIKE '%s%' AND departement = '%s'", $colname_cat, $colname2_cat, $colname3_cat,);
2/ le champ departement est numérique doncpas de s dans ce champ
$query_cat = sprintf("SELECT * FROM m_assos WHERE categorie LIKE '%s%' AND soucat LIKE '%s%' AND departement = " & intDep & ", $colname_cat, $colname2_cat, $colname3_cat,);
intDep est une variable contenant le numéro de département voulu.
avec cette requête, tu ramènes les enregistrements où categorie contient la lettre s, soucat contient la lettre s et oùle département est égal à la au contenu de la variable intDep
Salut,
Bien ca doit marcher normalement, enfin au niveau du principe:
Apres dans ton idée je sais pas trop mais y'a un truc qui me chifone. je m'explique:
- Département est un choix fixe: 01 ou 23 ou 93 etc...
- Categorie aussi '15-25' OU '25-35' OU...
- SousCat pareille
En plus tu precise que Categorie et SousCat sont soit des RadioButton soit des CheckBox donc choix unique par option.
Ce qui me chiffone c'est que LIKE c'est pour les choix multiples, si par exemple tu cherchais les recordes qui fonc a la fois partie de par exemple convivialité ET loisirs alors la le LIKE est nécessaire:
par contre, j'ai peut etre mal compris mais dans ton exemple tu pourrais faire simplement une égalité '=' non ?
Bon courage
A++
Hexanium
Bien ca doit marcher normalement, enfin au niveau du principe:
SELECT * FROM m_asso WHERE categorie LIKE( 'cat1', 'cat2',...) AND soucat LIKE( 'soucat1', 'souscat2',...) AND departement = 93
Apres dans ton idée je sais pas trop mais y'a un truc qui me chifone. je m'explique:
- Département est un choix fixe: 01 ou 23 ou 93 etc...
- Categorie aussi '15-25' OU '25-35' OU...
- SousCat pareille
En plus tu precise que Categorie et SousCat sont soit des RadioButton soit des CheckBox donc choix unique par option.
Ce qui me chiffone c'est que LIKE c'est pour les choix multiples, si par exemple tu cherchais les recordes qui fonc a la fois partie de par exemple convivialité ET loisirs alors la le LIKE est nécessaire:
SELECT * FROM m_asso WHERE ... soucat LIKE( 'convivialité', 'loisirs',...) ...
par contre, j'ai peut etre mal compris mais dans ton exemple tu pourrais faire simplement une égalité '=' non ?
Bon courage
A++
Hexanium
Kobaya
Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
214
26 avril 2005 à 17:01
26 avril 2005 à 17:01
salut Hexanium,
je crois que tu confonds IN et LIKE ;-)
IN s'utilise pour comparer un champ à une liste définie de valeur
LIKE s'utilise avec des caractères joker : % pour 1 ou plusieurs caractères et _ (underscore) pour 1 caractère
je crois que tu confonds IN et LIKE ;-)
IN s'utilise pour comparer un champ à une liste définie de valeur
LIKE s'utilise avec des caractères joker : % pour 1 ou plusieurs caractères et _ (underscore) pour 1 caractère