Bonjour à tous;

J'ai bien bossé le fgetcsv
et je récupère le tout dans des array
le but est bien sur de faire un INSERT INTO, donc avec SET id = :id, Nom = :Nom, etc
mais le problème c'est que les csv ont
  • Un nombre de colonnes différents
  • Des noms de colonnes différents

alors le nombre de SET va changer.

J'ai fait ca
  1. Lire le csv

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
OK
Mais les arrays sont de la forme [0] => 1, [1] => Le nom etc...
Et pour le array de execute() il aurait fallu [id] => 1, [Nom] => Le nom etc...

Alors je tente:
  1. De récupérer les entetes dans un array

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$arrayName = array();
if ($i==0) 
	{ // Créer les en tetes
	$num = count($data); echo "Num=".$num;
    	echo "<br/>";
    	for ($n=0; $n < $num; $n++) 
    		{ 
        		//echo $data[$n]."<br/>";
        		array_push($arrayName,$data[$n]);
    		}
    	// print_r($arrayName);
    	for ($d=0; $d < $num; $d++) { 
    	 	echo $arrayName[$d].' / ';
	 } 
}
Ok

Et là il faudrait créer un array des lignes suivantes avec comme entete l'arrayName précédent ?

Qu'en pensez-vous ?
Je pense que je galère bien, en tout cas