Problème requete mysql/php
Résolu/Fermé
otaku-sensei
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
-
18 mars 2009 à 13:16
otaku-sensei Messages postés 7 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 19 mars 2009 - 19 mars 2009 à 18:36
otaku-sensei Messages postés 7 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 19 mars 2009 - 19 mars 2009 à 18:36
A voir également:
- Problème requete mysql/php
- Easy php - Télécharger - Divers Web & Internet
- Mysql download - Télécharger - Bases de données
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
- Php?id=1 - Forum PHP
11 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 mars 2009 à 13:30
18 mars 2009 à 13:30
Essayes comme ça:
$result1 = $db->sql_query("SELECT * FROM flers_locsal_salle WHERE dflers<=".$_POST['localisation']." AND capacite>=".$_POST['nbr_personne']." AND cuisine ='".$_POST['cuisine']."'");
otaku-sensei
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
18 mars 2009 à 14:15
18 mars 2009 à 14:15
J'avais déjà essayé ce script et le formulaire ne renvoie rien c'est bizarre ^^
Je suis à cour d'idées
Je suis à cour d'idées
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 mars 2009 à 21:02
18 mars 2009 à 21:02
dflers<=".$_POST['localisation']."
dflers c'est bien un nombre qui est dans ce champ et bien en INT ?
et le champ localisation du formulaire te renvoie bien un nombre ?
dflers c'est bien un nombre qui est dans ce champ et bien en INT ?
et le champ localisation du formulaire te renvoie bien un nombre ?
otaku-sensei
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
18 mars 2009 à 21:53
18 mars 2009 à 21:53
le champ dflers est bien composé de nombre en smallint et le champ localisation renvoie bien un nombre.
Lorsque je réalise que la requete WHERE dflers<=".$_POST['localisation']." , celle ci fonctionne correctement.
Lorsque je réalise que la requete WHERE dflers<=".$_POST['localisation']." , celle ci fonctionne correctement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 mars 2009 à 21:57
18 mars 2009 à 21:57
alors procedes par étapes en rajoutant d'abord AND capacite>=".$_POST['nbr_personne']."
à ta requette et ensuite si ça marche tu ajoutera:
AND cuisine ='".$_POST['cuisine']."'"
ainsi tu verra quelle est la condition qui coince
à ta requette et ensuite si ça marche tu ajoutera:
AND cuisine ='".$_POST['cuisine']."'"
ainsi tu verra quelle est la condition qui coince
otaku-sensei
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
18 mars 2009 à 22:02
18 mars 2009 à 22:02
dflers<=".$_POST['localisation']."
AND capacite>=".$_POST['nbr_personne']."
Dès que je fais cela ça ne marche plus, bizarre car quand je fais la requête capacite seule elle fonctionne
:(
AND capacite>=".$_POST['nbr_personne']."
Dès que je fais cela ça ne marche plus, bizarre car quand je fais la requête capacite seule elle fonctionne
:(
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 mars 2009 à 22:21
18 mars 2009 à 22:21
essayes de mettre une trace d'erreur comme ça:
$result1 = $db->sql_query("SELECT * FROM flers_locsal_salle WHERE dflers<=".$_POST['localisation']." AND capacite>=".$_POST['nbr_personne']." AND cuisine ='".$_POST['cuisine']."'") or die ("Pb :".mysql_error());
otaku-sensei
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
19 mars 2009 à 11:30
19 mars 2009 à 11:30
$result1 = $db->sql_query("SELECT * FROM flers_locsal_salle WHERE dflers<=".$_POST['localisation']."
AND capacite>=".$_POST['nbr_personne']."
Jusqu'à là ça marche correctement, donc apparemment c'est la requete AND cuisine ='".$_POST['cuisine']."' qui pose problème. Normalement le POST cuisine est récupéré par la sélection d'une check box
Encore plus étrange le fait de mettre "mysql_error" change le comportement: des résultats s'affichent à nouveau mais ne correspondent plus à la base de données :O
Merci pour ton aide
AND capacite>=".$_POST['nbr_personne']."
Jusqu'à là ça marche correctement, donc apparemment c'est la requete AND cuisine ='".$_POST['cuisine']."' qui pose problème. Normalement le POST cuisine est récupéré par la sélection d'une check box
Encore plus étrange le fait de mettre "mysql_error" change le comportement: des résultats s'affichent à nouveau mais ne correspondent plus à la base de données :O
Merci pour ton aide
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 mars 2009 à 15:05
19 mars 2009 à 15:05
ha donc
il faut passer par un décodage par php si coché => $cuisine= une valeur
si pas coché=> $cuisine=une autre valeur
bien sur en fonction de ce qui est dans ta BDD
et tu fais ta requette non plus avec $_POST[cuisine]
mais $cuisine
il faut passer par un décodage par php si coché => $cuisine= une valeur
si pas coché=> $cuisine=une autre valeur
bien sur en fonction de ce qui est dans ta BDD
et tu fais ta requette non plus avec $_POST[cuisine]
mais $cuisine
otaku-sensei
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
19 mars 2009 à 16:59
19 mars 2009 à 16:59
Dans le coup j'ai réussi à faire marcher mes checkbox en fonctionnant autrement, voici le code:
$result = "SELECT * FROM flers_locsal_salle WHERE";
if(!empty( $_POST['cuisine'] ) ) $result .= " cuisine='".$_POST['cuisine']."' ";
if(!empty( $_POST['toilettes'] ) ) $result .= "AND toilettes='".$_POST['toilettes']."' ";
if(!empty( $_POST['acces_handi'] ) ) $result .= "AND handi='".$_POST['acces_handi']."' ";
if(!empty( $_POST['estrade'] ) ) $result .= "AND estrade='".$_POST['estrade']."' ";
if(!empty( $_POST['table_chaise'] ) ) $result .= "AND mobil='".$_POST['table_chaise']."' ";
if(!empty( $_POST['vaisselle'] ) ) $result .= "AND vaisselle='".$_POST['vaisselle']."' ";
if(!empty( $_POST['parking'] ) ) $result .= "AND parking='".$_POST['parking']."' ";
if(!empty( $_POST['piece_sup'] ) ) $result .= "AND piecesupp='".$_POST['piece_sup']."' ";
if(is_numeric( $_POST['localisation'] ) ) $result .= " AND dflers<='".$_POST['localisation']."' ";
if(is_numeric( $_POST['nbr_personne'] ) ) $result .= " AND capacite>='".$_POST['nbr_personne']."' ";
var_dump($result);
$result = $db->sql_query($result);
Le seul truc c'est que la checkbox cuisine doit forcement être validée pour que la validation du formulaire fonctionne.
Maintenant j'ai un autre souci ^^: J'ai un champ budget (en numérique) et je souhaite que le résultat renvoie tous ce qui est à + ou - 30% du budget sélectionné. Le champ, concerné, de ma base s'appelle prix
J'ai essayé ce code mais fonctionne pas:
$result .= " AND prix BETWEEN '".$_POST['budget_salle']."'+30% AND'".$_POST['budget_salle']."'-30%");
$result = "SELECT * FROM flers_locsal_salle WHERE";
if(!empty( $_POST['cuisine'] ) ) $result .= " cuisine='".$_POST['cuisine']."' ";
if(!empty( $_POST['toilettes'] ) ) $result .= "AND toilettes='".$_POST['toilettes']."' ";
if(!empty( $_POST['acces_handi'] ) ) $result .= "AND handi='".$_POST['acces_handi']."' ";
if(!empty( $_POST['estrade'] ) ) $result .= "AND estrade='".$_POST['estrade']."' ";
if(!empty( $_POST['table_chaise'] ) ) $result .= "AND mobil='".$_POST['table_chaise']."' ";
if(!empty( $_POST['vaisselle'] ) ) $result .= "AND vaisselle='".$_POST['vaisselle']."' ";
if(!empty( $_POST['parking'] ) ) $result .= "AND parking='".$_POST['parking']."' ";
if(!empty( $_POST['piece_sup'] ) ) $result .= "AND piecesupp='".$_POST['piece_sup']."' ";
if(is_numeric( $_POST['localisation'] ) ) $result .= " AND dflers<='".$_POST['localisation']."' ";
if(is_numeric( $_POST['nbr_personne'] ) ) $result .= " AND capacite>='".$_POST['nbr_personne']."' ";
var_dump($result);
$result = $db->sql_query($result);
Le seul truc c'est que la checkbox cuisine doit forcement être validée pour que la validation du formulaire fonctionne.
Maintenant j'ai un autre souci ^^: J'ai un champ budget (en numérique) et je souhaite que le résultat renvoie tous ce qui est à + ou - 30% du budget sélectionné. Le champ, concerné, de ma base s'appelle prix
J'ai essayé ce code mais fonctionne pas:
$result .= " AND prix BETWEEN '".$_POST['budget_salle']."'+30% AND'".$_POST['budget_salle']."'-30%");
otaku-sensei
Messages postés
7
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
19 mars 2009
19 mars 2009 à 18:36
19 mars 2009 à 18:36
C'est bon j'ai trouvé la solution! ^^
Merci à toi Alain pour ton aide
Merci à toi Alain pour ton aide