le 25/02/2004 à 11:03
i M@N
Hello !
J'ai un souci avec un script que j'essaye de faire fonctionner et qui est censé insérer dans ma base des données présentes dans un fichier.csv (comma separated values).
Voilà la structure de ma table csv :
CREATE TABLE `csv` (
`id` int(5) NOT NULL default '0',
`label` varchar(40) NOT NULL default '',
`artiste` varchar(40) NOT NULL default '',
`titre` varchar(40) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) TYPE=MyISAM;
Voila le contenu du fichier file.csv :
"1";"label1";"artiste1";"titre1"
"2";"label2";"artiste2";"titre2"
"3";"label3";"artiste3";"titre3"
"4";"label4";"artiste4";"titre4"
"5";"label5";"artiste5";"titre5"
Voila mon script :
<?
$base = mysql_connect ('localhost', 'root', '***');
mysql_select_db ('test', $base) ;
// Préparation de la requête de suppression
$sql = 'DELETE * FROM csv';
// on exécute la requête
$result = mysql_query($sql);
$handle = fopen ("./file.csv","r");
fgetcsv ($handle, 1000, ",");
while ($data = fgetcsv ($handle, 1000, ",")) {
print $data[0] . "\n";
mysql_query("INSERT INTO csv (id,label,artiste,titre) VALUES ('".$data[0]."')");
printf (" - le dernier enregistrement a pour id %d\n", mysql_insert_id());
echo "\n";
echo "\n";
//ce qui est echo c'est juste pour savoir que le script fonctionne...
}
fclose ($handle);
// on ferme la connexion à la base de données.
mysql_close ();
?>
Quand je lance le script, il affiche ça :
2 - le dernier enregistrement a pour id 0
3 - le dernier enregistrement a pour id 0
4 - le dernier enregistrement a pour id 0
5 - le dernier enregistrement a pour id 0
Non seulement il n'affiche rien pour l'id 1, mais en plus il n'insère rien dans ma base.
Quelqu'un sait pourquoi ?
@+...
J'ai un souci avec un script que j'essaye de faire fonctionner et qui est censé insérer dans ma base des données présentes dans un fichier.csv (comma separated values).
Voilà la structure de ma table csv :
CREATE TABLE `csv` (
`id` int(5) NOT NULL default '0',
`label` varchar(40) NOT NULL default '',
`artiste` varchar(40) NOT NULL default '',
`titre` varchar(40) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) TYPE=MyISAM;
Voila le contenu du fichier file.csv :
"1";"label1";"artiste1";"titre1"
"2";"label2";"artiste2";"titre2"
"3";"label3";"artiste3";"titre3"
"4";"label4";"artiste4";"titre4"
"5";"label5";"artiste5";"titre5"
Voila mon script :
<?
$base = mysql_connect ('localhost', 'root', '***');
mysql_select_db ('test', $base) ;
// Préparation de la requête de suppression
$sql = 'DELETE * FROM csv';
// on exécute la requête
$result = mysql_query($sql);
$handle = fopen ("./file.csv","r");
fgetcsv ($handle, 1000, ",");
while ($data = fgetcsv ($handle, 1000, ",")) {
print $data[0] . "\n";
mysql_query("INSERT INTO csv (id,label,artiste,titre) VALUES ('".$data[0]."')");
printf (" - le dernier enregistrement a pour id %d\n", mysql_insert_id());
echo "\n";
echo "\n";
//ce qui est echo c'est juste pour savoir que le script fonctionne...
}
fclose ($handle);
// on ferme la connexion à la base de données.
mysql_close ();
?>
Quand je lance le script, il affiche ça :
2 - le dernier enregistrement a pour id 0
3 - le dernier enregistrement a pour id 0
4 - le dernier enregistrement a pour id 0
5 - le dernier enregistrement a pour id 0
Non seulement il n'affiche rien pour l'id 1, mais en plus il n'insère rien dans ma base.
Quelqu'un sait pourquoi ?
@+...