Php/mysql - query improbable (where and)
Résolu
Jer
-
varfendell Messages postés 3259 Date d'inscription Statut Membre Dernière intervention -
varfendell Messages postés 3259 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Ce matin, j'ai pu me faire aider pour la définition de mes variables dans ma requête (requête php > mysql pour interroger une db en fonction du contenu des champs dans un formulaire html (méthode post).
La requête passe bien quand on prend les champs 1 par 1, par exemple avec ceci:
Mais ça coince lorsque je veux les combiner, comme ceci :
Pourquoi la combinaison des critères n'appelle-t-elle donc aucun résultat ?
Merci d'avance !
Ce matin, j'ai pu me faire aider pour la définition de mes variables dans ma requête (requête php > mysql pour interroger une db en fonction du contenu des champs dans un formulaire html (méthode post).
La requête passe bien quand on prend les champs 1 par 1, par exemple avec ceci:
$query = "SELECT * FROM marginalia WHERE margindex LIKE '%".$margindex."%' ORDER BY margindex";
Mais ça coince lorsque je veux les combiner, comme ceci :
$query = "SELECT * FROM marginalia WHERE margindex LIKE '%".$margindex."%' AND nota LIKE '%".$nota."%' AND nota_var LIKE '%".$nota_var."%' AND ref_txt LIKE '%".$ref_txt."%' AND v_v LIKE '%".$v_v."%' AND nombre LIKE '%".$nombre."%' AND main LIKE '%".$main."%' ORDER BY margindex";
Pourquoi la combinaison des critères n'appelle-t-elle donc aucun résultat ?
Merci d'avance !
mysql_connect (etc...) mysql_select_db (etc...) $margindex = mysql_real_escape_string($_POST['margindex']); $nota = mysql_real_escape_string($_POST['nota']); $nota_var = mysql_real_escape_string($_POST['nota_var']); $nota_sup = mysql_real_escape_string($_POST['nota_sup']); $ref_txt = mysql_real_escape_string($_POST['ref_txt']); $ref_1601 = mysql_real_escape_string($_POST['ref_1601']); $t_suj = mysql_real_escape_string($_POST['t_suj']); $lien = mysql_real_escape_string($_POST['lien']); $n_suj = mysql_real_escape_string($_POST['n_suj']); $v_v = mysql_real_escape_string($_POST['v_v']); $nombre = mysql_real_escape_string($_POST['nombre']); $main = mysql_real_escape_string($_POST['main']); $commentaire = mysql_real_escape_string($_POST['commentaire']); $query = "SELECT * FROM marginalia WHERE margindex LIKE '%".$margindex."%' AND nota LIKE '%".$nota."%' AND nota_var LIKE '%".$nota_var."%' AND ref_txt LIKE '%".$ref_txt."%' AND v_v LIKE '%".$v_v."%' AND nombre LIKE '%".$nombre."%' AND main LIKE '%".$main."%' ORDER BY margindex"; $result = mysql_query($query) OR die(mysql_error()); echo (etc...)
A voir également:
- Php/mysql - query improbable (where and)
- Power query download - Télécharger - Tableur
- Spybot search and destroy - Télécharger - Antivirus & Antimalwares
- Where is it - Télécharger - Gestion de fichiers
- Easy php - Télécharger - Divers Web & Internet
- Find and mount - Télécharger - Récupération de données
5 réponses
et as tu essayer ta requête en brut? je veut dire par la, sans passer par le php, directement dans ton éditeur sql?
Au passage, a la place de tous tes mysql_real_escape_string mets ça, tu gagneras de la place ;)
foreach ($_POST as $k=>$v) { $$k = mysql_real_escape_string($v); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ajoute un echo $query; juste après ta requête, et test cette requête tel quel dans ton éditeur sql
Ca marche pas, erreur de syntaxe 1064.
montre nous ce que retourne le echo.
J'obtiens ceci :
J'ai peut-être mal interprété ce que tu me conseillais de faire. :-/