Bonjour,
J'ai un problème tout bête j'arrive pas à voir ce qu'il se passe. J'ai cherché dans les FAQ mais je trouve rien.
Quand je passe une requête SELECT dans un script PHP, elle me retourne des colonnes dupliquées, avec pour titre un numéro partant de 0.
Si je la passe sur MyPHPadmin, ça marche normalement.
Voilà les données du problème :
Versions : MySQL5.1/PHP5.3.6
===============
Le code PHP :
==============
<?php
$filename = 'commandes.csv';
$monfichier = fopen($filename, 'w');
$bdd = new PDO('mysql:host=hostname;dbname=dbname', 'username', 'password');
$requete = 'SELECT * FROM ps_product_sale; ';
$titres = array();
$reponse = $bdd->query($requete);
while ($ligne = $reponse->fetch()) {
if (empty($titres)) {
$titres = array_keys($ligne); // récupère les noms de colonne
fputcsv($monfichier, $titres, ';');
}
fputcsv($monfichier, $ligne, ';') ;
}
}
$reponse->closeCursor();
?>
==============================
Le résultat obtenu avec ce code :
==============================
Code : Tout sélectionner
id_product;0;quantity;1;sale_nbr;2;date_upd;3
10;10;4;4;4;4;2011-07-22;2011-07-22
15;15;4;4;4;4;2011-07-22;2011-07-22
16;16;4;4;4;4;2011-07-22;2011-07-22
18;18;4;4;2;2;2011-07-22;2011-07-22
======================================================================
Le résultat obtenu avec myphpadmin et que je m'attendrais à obtenir de mon code:
======================================================================
Code : Tout sélectionner
"id_product";"quantity";"sale_nbr";"date_upd"
"10";"4";"4";"2011-07-22"
"15";"4";"4";"2011-07-22"
"16";"4";"4";"2011-07-22"
"18";"4";"2";"2011-07-22"
===================
Le show create table :
===================
CREATE TABLE `ps_product_sale` (
`id_product` int(10) unsigned NOT NULL,
`quantity` int(10) unsigned NOT NULL default '0',
`sale_nbr` int(10) unsigned NOT NULL default '0',
`date_upd` date NOT NULL,
PRIMARY KEY (`id_product`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
===================
Les inserts de test :
===================
INSERT INTO 'ps_product_sale' ( `id_product`, `quantity` , `sale_nbr`, `date_upd`)
VALUES ("10","4","4","2011-07-22");
VALUES ("15","4","4","2011-07-22");
Si quelqu'un peut m'aider à y voir clair ...