Import fichier csv Erreur de syntaxe prsè de ...à la ligne 1
5 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
- hx.jonathan
- WRInaute occasionnel

- Messages: 115
- Inscription: Mer Mar 02, 2005 17:42
Import fichier csv Erreur de syntaxe prsè de ...à la ligne 1
Salut tout le monde,
Je tente désepérément d'importer le contenu de mon fichier csv dans ma BDD. Je parviens à lire le fichier, à l'uploader sur mon serveur mais lorsqu'il s'agit d'enregistrer les infos du fichier csv, j'ai cette erreur :
Erreur de syntaxe près de 'Excursion,,Ne pas oublier d'apporter son maillot de bain
)' à la ligne 1
Remarque : j'utilise le "; " comme séparateur. Voic le code de ma page :
Quelqu'un aurait-il une solution svp ?
John
Je tente désepérément d'importer le contenu de mon fichier csv dans ma BDD. Je parviens à lire le fichier, à l'uploader sur mon serveur mais lorsqu'il s'agit d'enregistrer les infos du fichier csv, j'ai cette erreur :
Erreur de syntaxe près de 'Excursion,,Ne pas oublier d'apporter son maillot de bain
)' à la ligne 1
Remarque : j'utilise le "; " comme séparateur. Voic le code de ma page :
- Code: Tout sélectionner
<?php
echo '<p>';
include_once 'fonctions.php';
connexion_DB('amisphere_main');
if(isset($_FILES['fichier']))
{
$dest_dossier = 'Zones_Admin/programme/';
$fichier_source = basename($_FILES['fichier']['name']);// récupère le contenu de la variable fichier du formulaire
move_uploaded_file($_FILES["fichier"]["tmp_name"],$dest_dossier.$fichier_source);
echo 'Le nouveau programme ' .$_FILES['fichier']['name']. ' a été importé avec succès';
echo '<p><span class="gras">Redirection automatique...</span></p>';
}
else {
echo 'Impossible de charger le nouveau programme';
}
echo '</p>';
$myFile = fopen("Zones_Admin/programme/".$_FILES['fichier']['name'],'r');//on ouvre le fichier uplodé !!
$i =0;
while (!feof($myFile)){
$i++;
$myLine=fgets($myFile);//met la ligne dans la variable "$myline"
$tab = explode(";", $myLine);
if ($i > 1 && strlen($tab[0]) >0){ //plus grand que 1 et si la taille de la chaine de caractere est >0
$type_activ=$tab[0];
$date_debut=$tab[4];
$date_fin=$tab[8];
$prix=$tab[9];
$heure=$tab[10];
$resume=$tab[11];
$details=$tab[12];
$autres=$tab[13];
/* echo $type_activ.' | ';
echo $date_debut.' | ';
echo $date_fin.' | ';
echo $prix.' | ';
echo $heure.' | ';
echo $resume.' | ';
echo $details.' | ';
echo $autres.'<br/>'; */
//INSERTION DANS BDD
$sql="INSERT INTO test(type_activ,date,date_fin,prix,heure,resume,details,autre) VALUES($type_activ,$date_debut,$date_fin,$prix,$heure,$resume,$details,$autres)";
mysql_query($sql) or die(mysql_error());
}
}
unlink("Zones_Admin/programme/".$_FILES['fichier']['name']);//on supprimme le fichier importé du répertoire du serveur.
fclose($myFile);
?>
Quelqu'un aurait-il une solution svp ?
John
- hx.jonathan
- WRInaute occasionnel

- Messages: 115
- Inscription: Mer Mar 02, 2005 17:42
Ben j'ai cherché des sources avec fgetcsv. Je parviens à afficher le contenu de mon fichier csv mais il faudrait que je puisse stocker chaque colonne dans une variables séparéé histoire que je puisse enregistrer les champs que je veux dans la BDD.
Une idée ??
Merci
Une idée ??
Merci
Tu dois traiter chaque ligne séparement. Ton fichier cvs en sortie doit avoir ce format
aaaaaaaa;bbbbbbbbb;cccccccccc
2222222;33333333;44444444
1° Passes chaque ligne dans une variable que tu vas traiter simplement avec la fonction explode()
2° Le resultat se trouve dans le tableau "champ", a chaque traitement de ligne tu inserts un nouvelle enregistrement dans ta table
aaaaaaaa;bbbbbbbbb;cccccccccc
2222222;33333333;44444444
1° Passes chaque ligne dans une variable que tu vas traiter simplement avec la fonction explode()
- Code: Tout sélectionner
$chaine = 'aaaaaaaa;bbbbbbbbb;cccccccccc';
$champ = explode(";", $chaine);
2° Le resultat se trouve dans le tableau "champ", a chaque traitement de ligne tu inserts un nouvelle enregistrement dans ta table
- Code: Tout sélectionner
INSERT INTO tatable (champ1,champ2,champ3) VALUE($champ[0],$champ[1],$champ[2]);
-

UsagiYojimbo - WRInaute accro

- Messages: 5189
- Inscription: Mer Nov 23, 2005 10:38
Ce serait pas un bête problème de quote ? Il faut penser à "protéger" les chaînes avant insertion dans le base de données.
5 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Article sur le fichier .htaccess
- Les albums web Picasa passent à 1 Go de stockage
- Importer tout son blog dans Google Base
- Google Code Search : moteur de recherche de codes sources
- CSV AdStats v4 : le logiciel pour analyser ses statistiques AdSense
- Du nouveau dans le Centre pour Webmasters de Live Search
- Sortie d'un nouveau livre sur Google
- Déclarer son fichier sitemap dans le fichier robots.txt
- Un moyen très simple et gratuit d'obtenir des backlinks
- Google Health : votre dossier médical géré par Google...
Consultez la description détaillée des produits ou services de Google suivants : Google Docs, Google Présentations
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


le forum