Salut à tous!
Voilà j'ai un petit problème puisque je veux faire plusieurs requêtes en utilisant MySQL - PDO sur une seule et même page PHP et que ça ne fonctionne pas.
Le principe est le suivant : un utilisateur coche des cases et peut ainsi afficher des graphiques construits à partir des données récupérées dans ma bdd. Il y a donc des conditions suivant la(es) case(s) cochée(s) et à l'intérieur de chaque condition, une requête préparée permet de récupérer les données correspondantes. J'appelle une fonction permettant de construire le tableau de données (qui sert ensuite à construire le graphique)
Quand je coche une case à la fois ça marche très bien, j'obtiens le bon graphique.
Quand j'en coche plusieurs, j'ai bien vérifié qu'on entre bien dans les conditions correspondantes mais malheureusement il n'y a qu'une seule requête sql qui s'exécute et pas les autres (alors qu'individuellement elles fonctionnent toutes). Je n'ai donc qu'un graphique.
Je ne sais pas du tout comment procéder pour faire fonctionner ces plusieurs requêtes en même temps.
Un exemple de condition avec la requête préparée :
De plus à termes j'aurais aimé pouvoir remplacer le windCurrent dans la requête sql par une variable. C'est possible ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 foreach($_POST['choixCourbe'] as $choixCourbe) { if ($choixCourbe=='courantEolien') { $sql = 'SELECT windCurrent FROM data ORDER BY id DESC LIMIT :debut, :fin'; $stmt = $bdd->prepare($sql); $stmt->bindParam(':debut', $debut, PDO::PARAM_INT); $stmt->bindParam(':fin', $fin, PDO::PARAM_INT); $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_BOTH); if ($rows == false) { echo 'Pas de résultat'; } else { $html_table = '<table class="courantEolien" border="1" cellspacing="0" cellpadding="2"><caption>Courant éolien</caption>'; traiterRequete($html_table, $rows); } $stmt->closeCursor(); } if ($choixCourbe=='courantSolaire') { $sql = 'SELECT sunCurrent FROM data ORDER BY id DESC LIMIT :debut, :fin'; $stmt = $bdd->prepare($sql); $stmt->bindParam(':debut', $debut, PDO::PARAM_INT); $stmt->bindParam(':fin', $fin, PDO::PARAM_INT); $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_BOTH); if ($rows == false) { echo 'Pas de résultat'; } else { $html_table = '<table class="courantSolaire" border="1" cellspacing="0" cellpadding="2"><caption>Courant photovoltaïque</caption>'; traiterRequete($html_table, $rows); } $stmt->closeCursor(); } }
Merci d'avance pour vos réponses
Sophie
Partager