Page 1 sur 1

Compter le nombre de colonnes d'un csv

Posté : 30 oct. 2009, 20:38
par nagstef
Encore moi !!

J'arrive à trouver pleins d'exemples qui permettent d'importer un csv dans une base, mais avec un nombre de colonnes déjà définies.

Or, pour mon projet, il se peut qu'on upload un fichier csv (données séparées par des ';'), avec un nombre plus ou moins grand de données par ligne.

Et là, je cale ...

J'ai ça comme code, mais à titre perso, il faudrait que j'aille jusqu'à val35 :( ... Je ne pense pas que cela soit judicieux, d'autant plus que cela ne sera pas tout le temps 35 ..

Je pense que j'arriverais à m'en sortir si j'avais une fonction qui me permettait de comptabiliser le nombre de 'colonnes' contenues dans chaque ligne.

En vous remerciant encore !


....

/* On cree la table */
$query = "CREATE TABLE $table( val1 int(4), val2 varchar(4), val3(24), val4 varchar(4) )";
$result= MYSQL_QUERY($query);

/* On ouvre le fichier à importer en lecture seulement */
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else
{ /* le fichier n'existe pas */
echo "Fichier introuvable !<br>Importation stoppée.";
exit();
}

while (!feof($fp)) /* Et Hop on importe */
{ /* Tant qu'on n'atteint pas la fin du fichier */
$ligne = fgets($fp,4096); /* On lit une ligne */

/* On récupère les champs séparés par ; dans liste*/
$liste = explode( ";",$ligne);

/* On assigne les variables */
$val1 = $liste[0];
$val2 = $liste[1];
$val3 = $liste[2];
$val4 = $liste[3];

/* Ajouter un nouvel enregistrement dans la table */
$query = "INSERT INTO $table VALUES('$val1','$val2','$val3','$val4')";
$result= MYSQL_QUERY($query);

if(mysql_error())
{ /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
print "Erreur dans la base de données : ".mysql_error();
print "<br>Importation stoppée.";
exit();

Re: Compter le nombre de colonnes d'un csv

Posté : 30 oct. 2009, 22:17
par stopher
Salut ,


Apres avoir fait un explode de ta ligne ,
il te suffit de faire un count()
$liste = explode( ";",$ligne); 
$nbcol  =  count($liste);
Ch.

Re: Compter le nombre de colonnes d'un csv

Posté : 31 oct. 2009, 19:56
par nagstef
Tout couillon, en effet ... Y'a encore des automatismes que j'ai vraiment pas !!

Merci encore !! :)