Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 13/05/2013, à 14:56

Marinou9000

Recherche avancée dans 2 tables differentes

Bonjour smile
J'ai un petit problème qui me bloque depuis quelque temps.
Peut être suis je seulement étourdie mais mes connaissances en SQL ne me permettent pas de trouver mon erreur ^^

Je vous explique, via un formulaire situé plus haut dans ma page de code, je récupère une variable 'serveur' qui doit me permettre de rechercher des applications dont des composants figurent sur ces serveurs.

Je vous met le code pour pouvoir mieux vous expliquer :

@$sql = 'SELECT * FROM `application` WHERE 
 (`nom` LIKE \''. $_POST['application'].'%\'  OR `nom_com` LIKE \''.$_POST['application'].'%\' OR 
 `nom` LIKE \'%(SELECT `nom` FROM `fiche` WHERE (`serveur1` LIKE \''.$_POST['serveur'].'%\' OR `serveur2` LIKE \''.$_POST['serveur'].'%\'))%\' AND
 `serveur_app` LIKE \''.$_POST['serveur_app'].'%\' ;";

Je ne sais pas si certains on déjà réussis a comprendre ( le raisonnement d'une fille dans sa splendeur tongue ), mais en gros, j'ai deux tables, 'application' et 'fiche' dont une colonne est identique 'nom'.

Le but final est que en tapant le nom d'un serveur, il me retourne toutes les applications dont les composants sont sur ce serveur et qu'il soit toujours possible d'ajouter plus de critères a la recherche.

Merci d'avance pour les courageux smile
Marine


Love is all you need - Yoda

Hors ligne

#2 Le 13/05/2013, à 15:16

xavier4811

Re : Recherche avancée dans 2 tables differentes

Bonjour,

En premier évite d'utiliser les $_POST directement dans la requète, passe par une variable intermédiaire et vérifie/filtre le contenu du $_POST.

php ? Y'a pas un ' fermé avec un " a la fin.
MySQL ? SELECT * FROM `application`, `fiche` WHERE ...

Hors ligne

#3 Le 13/05/2013, à 16:57

Marinou9000

Re : Recherche avancée dans 2 tables differentes

Ouai si, mais pour le ' qui manque cela viens d'une erreur lors de la copie, dans le vrai code il y est ^^


Love is all you need - Yoda

Hors ligne

#4 Le 13/05/2013, à 17:21

xavier4811

Re : Recherche avancée dans 2 tables differentes

Et la première parenthèse se ferme ? avant le OR a la fin de la 2ème ligne ?

Hors ligne

#5 Le 13/05/2013, à 17:27

Marinou9000

Re : Recherche avancée dans 2 tables differentes

Oui sur la ligne du dessous ^^


Love is all you need - Yoda

Hors ligne

#6 Le 13/05/2013, à 20:12

ssdg

Re : Recherche avancée dans 2 tables differentes

il faudrait plutôt essayer de passer tout les "paramètres" de la requête par une fonction du type de http://fr2.php.net/manual/en/function.m … string.php

Sinon, bravo à xavier4811 pour avoir vu le problème de ' et " . Il vaut mieux utiliser un IDE qui détectera ce type de saletés avant même de lancer le code.


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

Haut de page ↑