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
- Lire le csv
OK
Code : Sélectionner tout - Visualiser dans une fenêtre à part while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
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:
- De récupérer les entetes dans un array
Ok
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].' / '; } }
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
![]()
Partager