je n'arrive tjours pas à résoudre mon problème de mise à jour d'une BD avec un fichier csv.
même en utilisant fgetcsv l'insertion ne fonctionne pas pour toutes les lignes qui contiennenet des champs avec des ponctuation comme le ; ou '.
j'ai un fichier csv avec comme séparateur le ; script avec fgets qui pose prob : while(!feof($fichier)) {
// Lecture d'une ligne de 4096 octets $ligne = fgets($fichier,4096) ; // On enlève le dernier caractère de la ligne (retour à la ligne) ??? $ligne = substr($ligne, 0, strlen($ligne)-1) ; // On sépare chaque cellules dans un tableau et on affiche chaque champ $liste = explode(";",$ligne) ;
$size = sizeof($liste) ;
if( $size == 10 ) {
// Requetes pour insertion dans la base $query = "insert into $table values('$liste[0]','$liste[1]','$liste[2]','$liste[3]','$liste[4]','$liste[5]','$liste[6]','$liste[7]','$liste[8]','$liste[9]')" ; $result = mysql_query($query) ; }} çà marche pas : il n'insérer pas les lignes avec des champs texte et des signes de ponctu j'essaye avec fgetcsv .; mais j'ai pas de meilleurs résults je fais : while(!feof($fichier)) { $liste = fgetcsv($fichier,4096) ; $size = sizeof($liste) ; if( $size == 10 ) {
Marsh Posté le 10-04-2005 à 14:52:52
bonjour,
je n'arrive tjours pas à résoudre mon problème de mise à jour d'une BD avec un fichier csv.
même en utilisant fgetcsv l'insertion ne fonctionne pas pour toutes les lignes qui contiennenet des champs avec des ponctuation comme le ; ou '.
j'ai un fichier csv avec comme séparateur le ;
script avec fgets qui pose prob :
while(!feof($fichier)) {
// Lecture d'une ligne de 4096 octets
$ligne = fgets($fichier,4096) ;
// On enlève le dernier caractère de la ligne (retour à la ligne) ???
$ligne = substr($ligne, 0, strlen($ligne)-1) ;
// On sépare chaque cellules dans un tableau et on affiche chaque champ
$liste = explode(";",$ligne) ;
$size = sizeof($liste) ;
if( $size == 10 ) {
// Requetes pour insertion dans la base
$query = "insert into $table values('$liste[0]','$liste[1]','$liste[2]','$liste[3]','$liste[4]','$liste[5]','$liste[6]','$liste[7]','$liste[8]','$liste[9]')" ;
$result = mysql_query($query) ;
}}
çà marche pas : il n'insérer pas les lignes avec des champs texte et des signes de ponctu
j'essaye avec fgetcsv .; mais j'ai pas de meilleurs résults
je fais :
while(!feof($fichier)) {
$liste = fgetcsv($fichier,4096) ;
$size = sizeof($liste) ;
if( $size == 10 )
{
$query = "insert into $table values('$liste[0]','$liste[1]','$liste[2]','$liste[3]','$liste[4]','$liste[5]','$liste[6]','$liste[7]','$liste[8]','$liste[9]')" ;
$result = mysql_query($query) ;
}}
une idée, un conseil
merci
joshua