Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/04/2008, 11h52   #1
Nouveau Membre du Club
 
Avatar de pierre987321
 
Inscription : août 2005
Messages : 115
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 115
Points : 26
Points : 26
Envoyer un message via AIM à pierre987321
Par défaut Probleme avec "array_key_exists"

bonjour a tous, je suis le webmaster de http://vente-location.fr
je recherche vos avis sur le montage d'un petit bou de code pour
mon moteur de recherche.

Explication :
je cherche a proposer une recherche par un seul IMPUT du style :
"acheter une maison" au lieu de coché la case "acheter" et "Maison",
ou case "location" et "Maison".

avant de finir mon code dans la totalité pouvez vous me dire ci je doit
poursuivre ou y a t'il plus simple ou autre idée ?


mon debut de code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$texterecherche = trim(@$_GET['texterecherche']);
$texterecherche = str_replace(", ", " ", $texterecherche); 
$texterecherche = str_replace(",", " ", $texterecherche); 
$texterecherche = str_replace("; ", " ", $texterecherche);
$texterecherche = str_replace(";", " ", $texterecherche);
$texterecherche = str_replace("+", " ", $texterecherche); 
$texterecherche = str_replace("\"", " ", $texterecherche);
$texterecherche = str_replace("'", "", $texterecherche);
$texterecherche = str_replace(":", " ", $texterecherche);
$tab=explode(" " , $texterecherche);
 
 
if ($tab[0]=='louer' || $tab[0]=='loué' || $tab[0]=='loue' || $tab[0]=='location' || $tab[0]=='locations') {
if ($tab[1] == 'un' || $tab[1] == 'une' || $tab[1] == 'dun' || $tab[1] == 'dune') {
if ($tab[2] == 'appartement') { $query_search .= " AND products.section = '32'";}
if ($tab[2] == 'apartement') { $query_search .= " AND products.section = '32'";}
if ($tab[2] == 'maison') { $query_search .= " AND products.section = '33'";}
if ($tab[2] == 'villa') { $query_search .= " AND products.section = '33'";}
}}
dans se début de code j'ai juste fait pour par exemple :
"louer un appartement" avec divers possibilitées...
Je doit continuer pour toute les possibilitée de recherche pour etre complé.



quesque vous en pensez ?
pierre987321 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2008, 15h57   #2
Nouveau Membre du Club
 
Avatar de pierre987321
 
Inscription : août 2005
Messages : 115
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 115
Points : 26
Points : 26
Envoyer un message via AIM à pierre987321
Par défaut ...

j'avance petit a petit, voici un l'avancement du code :

Code :
1
2
3
4
5
6
7
8
if (($tab[0]=='louer' || $tab[0]=='loué' || $tab[0]=='loue' || $tab[0]=='location' || $tab[0]=='locations') and 
   ($tab[1] == 'un' || $tab[1] == 'une' || $tab[1] == 'dun' || $tab[1] == 'dune')) {
 
 
if ($tab[2] == 'maison' || $tab[2] == 'villa' || $tab[2] == 'vila') { $query_search .= " AND products.section = '33'";}
if ($tab[2] == 'appartemant' || $tab[2] == 'appartement' || $tab[2] == 'apartement') { $query_search .= " AND products.section = '32'";}   
 
}
mieu quand meme ! non ?

puis je mettre les élément dans un seul tableau pour y etre comparé par la suite par chaque "tab[]" ? pour éviter la répétition...


ps:en faite je recherche a réduire l'écriture car il faut que je face la meme chose avec un grand nombre de possibilitée car mon (products.section) va de 0 à 180 ! imaginez vous le nombre de solution a faire
pierre987321 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 23h57   #3
Membre Expert
 
Avatar de darkstar123456
 
Inscription : mars 2008
Messages : 1 180
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Belgique

Informations forums :
Inscription : mars 2008
Messages : 1 180
Points : 1 357
Points : 1 357
Envoyer un message via Skype™ à darkstar123456
Regarde du côté de l'indexation FULLTEXT de mySQL. Tu te casseras moins la tête je pense

Voici un petit lien (en anglais) : http://dev.mysql.com/doc/refman/5.0/...xt-search.html
darkstar123456 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2008, 11h27   #4
Nouveau Membre du Club
 
Avatar de pierre987321
 
Inscription : août 2005
Messages : 115
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 115
Points : 26
Points : 26
Envoyer un message via AIM à pierre987321
Par défaut j'avance bien...

bon bin j'avance petit a petit.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
$oklouer=array("louer", "loué", "loue", "location", "locations");
$okune=array("un", "une", "dun", "dune", "d'un", "d'une", "le", "la");
$okmaison=array("maison", "villa", "vila", "maion", "aison", "village", "vilage");  
$okappartement=array("appartement", "appartemant", "apartement", "apartemant", "appartment", "partement");  
 
if ((in_array($tab[0], $oklouer)) and (in_array($tab[1], $okune))) {
if (in_array($tab[2], $okmaison) { $query_search .= " AND products.section = '33'";}
if (in_array($tab[2], $okappartement) { $query_search .= " AND products.section = '32'";}   
 
}
puige utiliser "array_key_exists" pour comparais 2 tableau ?
du style, mon tableau de "$tab" qui contient mes mots a mes "array".

esqu'il est possible de faire :
Code :
array_key_exists($tab, $ensemble des array) { true }
sachant qu'il me faut au moin 3 mot de mon array de "$tab" qui correspond au tableau de "$ensemble des array".


ci quelqu'un pouvé me renseigner...
pierre987321 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h41.


 
 
 
 
Partenaires

Hébergement Web