Tirage des données par niveau
Résolu
kanzory
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
kanzory Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
kanzory Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici encore une question assez 'bete': je voulais faire un tirage des données par beaucoup de variable. Les variables sont venues des listes déroulantes. Le problème est que la variable reçue peut etre 'TOUS', et je ne connais pas comment gérer ce problème. Voici une essaie, mais j'ai une erreur :
Catchable fatal error: Object of class PDOStatement could not be converted to string
voici mon code:
if ($_POST['commune'] != "TOUS")
{
$req1 =$bdd -> query ("SELECT * FROM base8 WHERE commune ='".$_POST['commune']."'") or die (print_r($bdd->errorInfo()));
}
else {$req1 =$bdd -> query ("SELECT * FROM base8");}
if ($_POST['Poste_source'] != "TOUS")
{
$req2 =$bdd -> query ("SELECT * FROM $req1 WHERE poste_source = '".$_POST['Poste_source']."'") or die (print_r($bdd->errorInfo()));
}
else {$req2 = $req1;}
if ($_POST['depart'] != "TOUS")
{
$req3 =$bdd -> query ("SELECT * FROM $req2 WHERE depart = '".$_POST['depart']."'") or die (print_r($bdd->errorInfo()));
}
else {$req3 = $req2;}
if ($_POST['ID_emetteur'] != "TOUS")
{
$req4 =$bdd -> query ("SELECT * FROM $req3 WHERE ID_emetteur = '".$_POST['ID_emetteur']."'") or die (print_r($bdd->errorInfo()));
}
else {$req4 = $req3;}
voilà merci
Voici encore une question assez 'bete': je voulais faire un tirage des données par beaucoup de variable. Les variables sont venues des listes déroulantes. Le problème est que la variable reçue peut etre 'TOUS', et je ne connais pas comment gérer ce problème. Voici une essaie, mais j'ai une erreur :
Catchable fatal error: Object of class PDOStatement could not be converted to string
voici mon code:
if ($_POST['commune'] != "TOUS")
{
$req1 =$bdd -> query ("SELECT * FROM base8 WHERE commune ='".$_POST['commune']."'") or die (print_r($bdd->errorInfo()));
}
else {$req1 =$bdd -> query ("SELECT * FROM base8");}
if ($_POST['Poste_source'] != "TOUS")
{
$req2 =$bdd -> query ("SELECT * FROM $req1 WHERE poste_source = '".$_POST['Poste_source']."'") or die (print_r($bdd->errorInfo()));
}
else {$req2 = $req1;}
if ($_POST['depart'] != "TOUS")
{
$req3 =$bdd -> query ("SELECT * FROM $req2 WHERE depart = '".$_POST['depart']."'") or die (print_r($bdd->errorInfo()));
}
else {$req3 = $req2;}
if ($_POST['ID_emetteur'] != "TOUS")
{
$req4 =$bdd -> query ("SELECT * FROM $req3 WHERE ID_emetteur = '".$_POST['ID_emetteur']."'") or die (print_r($bdd->errorInfo()));
}
else {$req4 = $req3;}
voilà merci
A voir également:
- Tirage des données par niveau
- Fuite données maif - Guide
- Trier des données excel - Guide
- Sauvegarde des données - Guide
- Supprimer les données de navigation - Guide
- Excel validation des données liste - Guide
1 réponse
Bonjour,
Ton code n'est pas très logique, à ton premier IF, tu fais une requête, $req1 est donc ton jeu de résultat, tu ne peut pas l'insérer comme ça dans une autre requête (
Pour ton code, le plus simple est de construire ta requête, puis de faire ton query, un truc du genre :
Par contre, vérifie ta sécurité, là j'ai repris ton code mais tu est vulnérable aux injections SQL.
Ton code n'est pas très logique, à ton premier IF, tu fais une requête, $req1 est donc ton jeu de résultat, tu ne peut pas l'insérer comme ça dans une autre requête (
SELECT * FROM $req1).
Pour ton code, le plus simple est de construire ta requête, puis de faire ton query, un truc du genre :
$myquery="ELECT * FROM base8 WHERE 1"; if($_POST['commune'] != "TOUS")$myquery.=" AND commune='".$_POST['commune']."'"; $req1 =$bdd -> query ($myquery);
Par contre, vérifie ta sécurité, là j'ai repris ton code mais tu est vulnérable aux injections SQL.
kanzory
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
C'est bien ça que je voulais. Merci beacuoup :)