Moteur de recherche [PHP / MySQL] - PHP - Programmation
Marsh Posté le 29-06-2006 à 20:30:09
J'ai pas regardé en détail mais déjà j'ai vu ça
Code :
|
Tu as un " qui ne devrait pas apparaître
Je materai le reste plus en détail
Marsh Posté le 30-06-2006 à 08:43:28
Merci guitou, mais j'ai fait cette erreur en recopiant le code.
[edit] Je l'ai corrigé [/edit]
Marsh Posté le 30-06-2006 à 08:55:58
Pour faire une requete sur plusieurs champs, le mieu c'est que tu te fasses une petite methode à laquelle tu passe un array avec tous les champs que tu veux tester, et que cette methode te construise la requete et te la retourne ...
Parcontre fait un peu d'effort pour le html ... En est au 21ème siecle quand meme
Marsh Posté le 30-06-2006 à 09:07:58
Merci pour ta réponse esox_ch, j'ai épuré le html au maximum pour faciliter la lecture
Peux-tu me donner une piste supplémentaire pour la mise en place de cette methode avec array?
Encore merci.
Marsh Posté le 30-06-2006 à 09:26:18
Je te propose des petites modifications sur ton code pour une meilleure lisibilité ainsi qu'une petite erreur (pe de frappe ?) que j'ai vu
Code :
|
Il manquait un dernier IF apres ton dernier else (ton erreur vient ptet de là)
Ensuite vu que tes requêtes à part 2/3 params sont identiques (à moins que j'ai mal luà il est inutile de les réécrire 40 fois, parceque si tu changes un nom de champ tu es obligé de le modifier partout etc etc
Donc la en fait il suffit de modifier les seuls paramètres qui changent (à savoir les secteurs) et de le concaténer à la fin de ta requête (je l'ai fait pour le 1er if je te laisse faire la suite )
Marsh Posté le 30-06-2006 à 09:30:07
Perso je trouve cette liste de if / elseif ... super indigeste ...
Perso j'ai une methode qui contient un array avec la liste des champs disponibles dans la bdd, ensuite, tu passes un array avec tous les champs sur lesquels le tri est possible (tu les recup du $_POST et tu fais les checks de secu dessus), et la methode prend 1 a 1 les champs sur lesquels elle est autorisée a faire le tri (pour des raisons de secu) et si la valeur dans l'array n'est pas vide elle l'insere dans la requete.
Voili voila
Marsh Posté le 30-06-2006 à 09:45:33
Merci à vous, je vais essayer de faire avec la réponse de guitou, je ne comprends pas bien comment mettre en place la méthode de esox_ch.
Marsh Posté le 30-06-2006 à 10:03:25
Bosse un peu le PHP orienté objet et après ça va te paraitre clair comme de l'eau de roche
Marsh Posté le 30-06-2006 à 10:12:28
J'aimerai vraiment maitriser tout ça un peu plus, c'est vrai que je fais avec des bouts de ficèle, mais j'avoue que c'est relativement compliqué à assimiler.
Marsh Posté le 30-06-2006 à 10:18:30
Ben-o a écrit : J'aimerai vraiment maitriser tout ça un peu plus, c'est vrai que je fais avec des bouts de ficèle, mais j'avoue que c'est relativement compliqué à assimiler. |
Ca viendra avec le temps
Pense à mettre ton code un jour une fois que tu auras avancé qu'on puisse voir ce qui cloche encore
Marsh Posté le 30-06-2006 à 10:24:50
J'ai donc fait comme tu m'as dit, mais j'affiche encore une page blanche...
il y a peut être un problème avec cette ligne??
Code :
|
Marsh Posté le 30-06-2006 à 10:29:44
Ben-o a écrit : J'ai donc fait comme tu m'as dit, mais j'affiche encore une page blanche...
|
Tu as une page blanche ? même pas l'affichage de la requête qui va être passée à la base avec le "echo $query_final" ?
Si non c'est que le souci est ailleurs.....
Poste ton nouveau code pour voir...
Marsh Posté le 30-06-2006 à 10:36:54
Voici mon code complet:
Code :
|
Marsh Posté le 30-06-2006 à 10:42:10
Ca te plaisait pas ma présentation des requêtes en colonnes parceque scroller 30kms pour lire la requête c pas super pratique.
Alors tu as toujours la page blanche ou tu arrives à voir la requête qui va être envoyée. Et si tu la vois est tu sur qu'elle va te renvoyer un résultat ? (si tu l'exécutes dans PhpMyAdmin par ex...)
EDIT :Quel con j'ai pas fait gaffe mais j'écrase ta variable $secteur avec les paramètres, il faut donc changer le nom...
Marsh Posté le 30-06-2006 à 10:45:36
oki pinaise, j'essaye en changeant le nom
[edit] Désolé pour le scroll [/edit]
Marsh Posté le 30-06-2006 à 11:05:35
Toujours une page blanche pinaise...
J'ai donc changé les noms de $secteur en $secteur_general:
Code :
|
J'ai vu qu'on avait également la possibilité de faire des requetes sur plusieurs tables en utilisant "LIKE", ne faudrait-il pas utiliser ça?
Marsh Posté le 30-06-2006 à 11:17:33
Le LIKE n'est pas un mot réservé pour faire des requêtes sur plusieurs tables mais plutot pour faire des test sur un champ ressemblant à
C'est pas super bien expliqué comme ça mais ca ira mieux avec un exemple
SELECT * FROM matable WHERE type='immeuble' AND codepostal LIKE '83%'
Le LIKE employé avec % va chercher les valeurs avec ta chaine et n'importe quoi (en gros c'est comme * sous windows)
Au dessus c'est le code postal qui pourra etre 83000 83230 etc etc
Enfin tout ça ca résoud pas ton pb... aurais tu moyen de me mailer tes 2 pages + quelques entrées de la base que je teste ça au taff ?
Marsh Posté le 29-06-2006 à 17:55:03
Bonjour, je dois mettre en place sur mon site d'annonces immobilières un moteur de recherche.
J'ai créé le formulaire de recherche:
Voici mon fichier "result_recherche_rapide.php" qui me permet de traîter le formulaire:
La requete renvoie une page blanche.
Je voudrai également savoir comment faire si des champs ne sont pas renseignés et pour faire une sélection sur plusieurs secteurs par exemple.
C'est assez délicat à expliquer, désolé si je n'ai pas été trop clair.
Merci par avance pour votre aide.
Message édité par Ben-o le 30-06-2006 à 08:44:10