Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2007, 09h51   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2006
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 46
Points : 14
Points : 14
Par défaut [CSV] Fichier CSV vers phpMyAdmin

Bonjour, je souhaiterais envoyer les données de mon fichier csv vers ma base de donnée.
Voici le csv : marseille.csv

Code :
1
2
3
4
5
6
7
8
"Unique ID","Name","Club","Position","Age","Cur A","Pot A"
"8449646","Abbes, Samir","1","D/WB R","16","65","103"
"5101854","Aliadière, Jérémie","1","ST","23","130","153"
"8439527","Amiri, Mareck","1","D LC","19","90","112"
"8449648","Aravecchia, Mickaël","1","AM R","16","65","101"
"8442448","Ayew, André","1","AM C","16","76","111"
"34010721","Ayew, Jordan","1","ST","14","60","94"
"8427375","Ba, Khalifa","1","D RC","20","108","110"
voila la base de donnée :

Code X :
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
-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
-- 
-- Serveur: localhost
-- Généré le : Jeudi 12 Avril 2007 à 09:48
-- Version du serveur: 4.1.9
-- Version de PHP: 4.3.10
-- 
-- Base de données: `bigboss`
-- 

-- --------------------------------------------------------

-- 
-- Structure de la table `joueur_equipe`
-- 

CREATE TABLE `joueur_equipe` (
  `id_joueur_equipe` int(10) NOT NULL default '0',
  `nom_joueur_equipe` varchar(50) NOT NULL default '',
  `id_equipe` int(3) NOT NULL default '0',
  `position_joueur_equipe` varchar(50) NOT NULL default '',
  `age_joueur_equipe` int(3) NOT NULL default '0',
  `abi_joueur_equipe` int(3) NOT NULL default '0',
  `pot_joueur_equipe` int(3) NOT NULL default '0',
  PRIMARY KEY  (`id_joueur_equipe`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- 
-- Contenu de la table `joueur_equipe`
--

Donc je voudrais passer le fichier csv dans ma base de donnée. Premier code.

L'idéal serait de le passer via un formulaire. qui permet de choisir le fichier et de l'envoyer vers la base de donnée : 2 éme code.
DrOOMMgba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 10h34   #2
Membre du Club
 
Inscription : janvier 2006
Messages : 250
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2006
Messages : 250
Points : 64
Points : 64
Bonjour , j'ai réaliser pareil il y à peut :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
$fichier = /chemin/de/ton/fichier.csv
	//Ouvrir le fichier en mode lecture
	$myfile = fopen($fichier , "r");
 
	while(!feof($myfile))
	{
		//Lire le fichier
		$ligne = fgets($myfile, 4096);
		// on crée un tableau des élements séparés par des points virgule
		$liste = explode(";",$ligne); 
		// éléments qui composent le .csv
		$liste[1]  = ( isset($liste[1]) ) ? $liste[1] : Null;
		$liste[2]  = ( isset($liste[2]) ) ? $liste[2] : Null;
 
		$ta_var=$liste[0]; 
		$ta_var2=$liste[1];
 
//Requete d'insertion
Insert into Nom_table (col1,col2,col3) Values (var1,var2,var3);
Voila les grandes lignes .
Renseigne toi sur explode(";",$ligne) qui s'occupe de faire tout , tout seul.
explode
javaboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 14h58   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2006
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 46
Points : 14
Points : 14
J'ai cherché de mon coté aussi voila le code : j'ai mis les 2 que j'ai pu trouvé.

Code :
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
<?
$connect = mysql_connect("localhost","root","");
mysql_select_db("bigboss",$connect);
?>
<table>
<?
$fp = fopen('csv/marseille.csv','r');
while (!feof($fp)) {
$line = fgetcsv($fp, 4096);
if ($line != "") {
echo '<tr><td>';
echo implode('</td><td>',$line);
echo '</td></tr>';}
}
fclose($fp);
?>
</table>
<br />
<?
 
$fichier = "csv/marseille.csv";
$fic = fopen($fichier, 'rb');
 
echo "<table border='1'>\n";
for ($ligne = fgetcsv($fic, 4096); !feof($fic); $ligne = fgetcsv($fic, 4096)) {
  echo "<tr>";
  $j = sizeof($ligne);
  for ($i = 0; $i < $j; $i++) {
    echo "<td>$ligne[$i]</td>";
    }
  echo "</tr>";
  }
echo "</table>\n";
 
?>
La je veux faire juste de l'affichage pour voir si çà marche bien aprés le mettre dans la base de donnée.


cependant le résultat n'est pas escompté çà donne çà :

ÿþ"�8�4�4�9�6�4�6�"� "�A�b�b�e�s� S�a�m�i�r�"� "�1�"� "�D�/�W�B� �R�"� "�1�6�"� "�6�5�"� "�1�0�3�"� �
"�5�1�0�1�8�5�4�"� "�A�l�i�a�d�i�è�r�e� J�é�r�é�m�i�e�"� "�1�"� "�S�T�"� "�2�3�"� "�1�3�0�"� "�1�5�3�"� �
"�8�4�3�9�5�2�7�"� "�A�m�i�r�i� M�a�r�e�c�k�"� "�1�"� "�D� �L�C�"� "�1�9�"� "�9�0�"� "�1�1�2�"� �
"�8�4�4�9�6�4�8�"� "�A�r�a�v�e�c�c�h�i�a� M�i�c�k�a�ë�l�"� "�1�"� "�A�M� �R�"� "�1�6�"� "�6�5�"� "�1�0�1�"� �
"�8�4�4�2�4�4�8�"� "�A�y�e�w� A�n�d�r�é�"� "�1�"� "�A�M� �C�"� "�1�6�"� "�7�6�"� "�1�1�1�"� �
"�3�4�0�1�0�7�2�1�"� "�A�y�e�w� J�o�r�d�a�n�"� "�1�"� "�S�T�"� "�1�4�"� "�6�0�"� "�9�4�"� �
"�8�4�2�7�3�7�5�"� "�B�a� K�h�a�l�i�f�a�"� "�1�"� "�D� �R�C�"� "�2�0�"� "�1�0�8�"� "�1�1�0�"�

Et je sais pas, pourquoi il me mets les caractéres : �.
DrOOMMgba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 15h06   #4
Candidat au titre de Membre du Club
 
Inscription : juillet 2006
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 46
Points : 14
Points : 14
Merci javaboy, pour ta réponse, je suis entrain de le tester mais j'ai l'impression que çà va me donner le meme résultat avec ?. Mais je teste et je tiens au courant.
DrOOMMgba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 16h38   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2006
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 46
Points : 14
Points : 14
je pense que c'est un probleme de codage utf8 et utf16 un truc comme çà , par contre là je suis complétement dépassé.

Je tiens à preciser que le fichier csv est automatiquement généré par un logiciel se nommant fm genie scout.
DrOOMMgba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 07h10   #6
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

Va voir là, ça t'évitera pas mal de lignes de code :
http://dev.mysql.com/doc/refman/5.0/fr/load-data.html
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2007, 14h09   #7
Candidat au titre de Membre du Club
 
Inscription : juillet 2006
Messages : 46
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 46
Points : 14
Points : 14
merci. mais j'avais vu çà , mais çà resolu pas mes problemes, j'ai regarder avec un editeur hexadecimal , a chaque aprés il mets un caracteres chelou.
DrOOMMgba est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h19.


 
 
 
 
Partenaires

Hébergement Web