Bonjour,
Il y a une requête mysql qui marche bien, mais j'aimerais bien la changer en PDO.
Voici la requête qui marche :
et voici je ce que j'obtiens :
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 $sql = <<<EOF SELECT YEAR(`DTHR_VENTE`) AS ANNEE, COUNT(ID) AS NBR_VENTES FROM `jp_graph_ventes` GROUP BY YEAR(`DTHR_VENTE`) EOF; $mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('erreur de connxion'); @mysql_select_db(MYSQL_DATABASE) or die('pas bon BDD'); $mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('erreur de requête'); while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) { $tableauAnnees_00[] = 'Année ' . $row['ANNEE']; $tableauNombreVentes_00[] = $row['NBR_VENTES']; } var_dump($tableauAnnees_00); echo '<p></p>'; die(var_dump($tableauNombreVentes_00));
array (size=3)
0 => string 'Année 2004' (length=10)
1 => string 'Année 2005' (length=10)
2 => string 'Année 2006' (length=10)
array (size=3)
0 => string '7' (length=1)
1 => string '34' (length=2)
2 => string '68' (length=2)
alors j'ai changé le code pour avoir une requête PDO :
mais j'ai obtiens :
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
47
48
49
50
51
52 /* $sql = <<<EOF SELECT YEAR(`DTHR_VENTE`) AS ANNEE, COUNT(ID) AS NBR_VENTES FROM `jp_graph_ventes` GROUP BY YEAR(`DTHR_VENTE`) EOF; $mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('erreur de connxion'); */ try { $bdd = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch (Exception $e) { die('Erreur nconnection mysql : ' . $e->getMessage()); } /* @mysql_select_db(MYSQL_DATABASE) or die('pas bon BDD'); $mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('erreur de requête'); */ $req = $bdd->prepare('SELECT YEAR (' . $champ_date . ') AS ANNEE, COUNT (' . $champ_id . ') AS NBR_VENTES FROM '. $tableData . ' GROUP BY YEAR (' . $champ_date . ')'); /* while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) { $tableauAnnees_00[] = 'Année ' . $row['ANNEE']; $tableauNombreVentes_00[] = $row['NBR_VENTES']; } */ //while ($donnees = $req->fetch()) while ($donnees = $req->fetch(PDO::FETCH_ASSOC)) //while ($donnees = $req->fetchAll()) //while ($donnees = $req->fetch(PDO::FETCH_BOTH)) //while ($donnees = $req->fetch(PDO::FETCH_LAZY)) //while ($donnees = $req->fetch(PDO::FETCH_OBJ)) { $tableauAnnees_00[] = 'Année ' . $donnees['par_annee']; $tableauNombreVentes_00[] = $row['combien']; } var_dump($tableauAnnees_00); echo '<p></p>'; die(var_dump($tableauNombreVentes_00)); $req->closeCursor();
array (size=0)
empty
array (size=0)
empty
Donc je me demande si mon "fetch(PDO::FETCH_ASSOC))" n'est pas bon ?
while ($donnees = $req->fetch(PDO::FETCH_ASSOC))
Est-ce que vous pouvez m'aider ?
merci
Partager