Insertion csv en bdd avec inversion colonne et ligne
Posté : 18 déc. 2017, 10:32
Bonjour,
Voilà je viens auprès de vous afin d'avoir de l'aide.
En effet je dois insérer un fichier csv en base de données mais en inversant les colonnes et les lignes.
Voici mon code actuel:
Ce code me permet d'afficher le fichier csv après ouverture jusqu'ici aucun soucis.
Voici un extrait du fchier csv (qui a toujorus la même structure seules les valeures changent).
Comme vous pouvez le voir les noms de colonnes dans ce fichier csv sont les dates or celles-ci changent à chaque fichier csv reçu donc ma base de données est faite à l'envers c'est à dire que les noms de colonnes sont:
J'ai mis les heures en noms de colonnes car celles-ci sont fixes. Mais je n'arrive pas à trovuer mes boucles de telle sorte que pour l'enregistrement en BDD cela me prenne la première date à la ligne 4 en ensuite prendre tous les éléments des lignes (5 à 28) et me les enregistrent sur une ligne en BDD! Et ensuite passer à la colonne 2 etc.
Quelqu'un pourrai m'aider?
JE ne sais pas sij'ai bien expliquer mon problème.
Je vous remercie par avance.
Voilà je viens auprès de vous afin d'avoir de l'aide.
En effet je dois insérer un fichier csv en base de données mais en inversant les colonnes et les lignes.
Voici mon code actuel:
Code : Tout sélectionner
<h1>Gestion des compteurs d'eau</h1>
<main>
<?php
$nb_fichier = 0;
$dossier = "";
$ok=0;
echo '<ul>';
//Scan du dossier csv
if($dossier = opendir('./csv'))
{
while(false !== ($fichier = readdir($dossier)))
{
// le count inclut toujours le dossier actuel et le dossier parent d'où ce test avec le . et le ..
if($fichier != '.' && $fichier != '..')
{
$nb_fichier++;
echo '<li><a href="./csv/' . $fichier . '">' . $fichier . '</a></li>';
}
}
echo '</ul><br />';
$ok=1;
closedir($dossier);
}
else
{
echo 'Le dossier n\' a pas pu être ouvert';
}
?>
</main>
<?php
if($ok==1)
{
echo "<div id=\"rslt\">";
if($nb_fichier<0)
{
echo 'Il n\'y a aucun fichier dans le dossier';
}
else
{
echo 'Il y a <strong> ' . $nb_fichier . ' </strong> fichier(s) dans le dossier';
echo "</div>";
//Connection des fichiers en base
include 'connectBDD.php';
connectBdd();
?>
<?php $row = 1;
if($dossier = opendir('./csv'))
{
while(false !== ($fichier = readdir($dossier)))
{
//Récupération du fichier et classement dans un tableau ligne par ligne
//Le @ sert à ne pas afficher l'erreur
//Le r pour ouvrir le fichier en lecture seule
if (($handle = @fopen("./csv/".$fichier, "r")) !== FALSE) { ?>
<div id="tableau">
<!-- le ; étant le caractère séparant les différents champs de chaque ligne -->
<?php
$filename = "./csv/".$fichier;
$ligne= file($filename);
$nbTotalLignes=count($ligne);
$tab = array();
for($i=0;$i<$nbTotalLignes;$i++){
$ligneTab = explode(";", $ligne[$i]);
//$tab[$ligneTab[0]] =$ligneTab[1];
print_r ($ligneTab);
echo "<br>";
}
//print_r($tab);
?>
</div>
<?php fclose($handle);
}
}
closedir($dossier);
}
}
}Voici un extrait du fchier csv (qui a toujorus la même structure seules les valeures changent).
Code : Tout sélectionner
Array ( [0] => D�but : 07 novembre 2017 [1] => )
Array ( [0] => Fin : 17 novembre 2017 [1] => )
Array ( [0] => )
Array ( [0] => Gestantes [1] => 16/11/2017 [2] => 15/11/2017 [3] => 14/11/2017 [4] => 13/11/2017 [5] => 12/11/2017 [6] => 11/11/2017 [7] => 10/11/2017 [8] => 09/11/2017 [9] => 08/11/2017 [10] => 07/11/2017 [11] => )
Array ( [0] => 23h � 24h [1] => 0 [2] => 6 [3] => 0 [4] => 5 [5] => 2 [6] => 5 [7] => 11 [8] => 1 [9] => 34 [10] => 1 [11] => )
Array ( [0] => 22h � 23h [1] => 1 [2] => 0 [3] => 5 [4] => 0 [5] => 17 [6] => 14 [7] => 1 [8] => 0 [9] => 57 [10] => 23 [11] => )
Array ( [0] => 21h � 22h [1] => 15 [2] => 17 [3] => 19 [4] => 24 [5] => 23 [6] => 21 [7] => 16 [8] => 15 [9] => 54 [10] => 23 [11] => )
Array ( [0] => 20h � 21h [1] => 27 [2] => 28 [3] => 39 [4] => 57 [5] => 57 [6] => 64 [7] => 46 [8] => 34 [9] => 58 [10] => 57 [11] => )
Array ( [0] => 19h � 20h [1] => 45 [2] => 67 [3] => 61 [4] => 48 [5] => 66 [6] => 82 [7] => 62 [8] => 54 [9] => 74 [10] => 61 [11] => )
Array ( [0] => 18h � 19h [1] => 74 [2] => 56 [3] => 64 [4] => 64 [5] => 54 [6] => 33 [7] => 65 [8] => 49 [9] => 63 [10] => 69 [11] => )
Array ( [0] => 17h � 18h [1] => 68 [2] => 64 [3] => 84 [4] => 70 [5] => 76 [6] => 58 [7] => 61 [8] => 77 [9] => 70 [10] => 80 [11] => )
Array ( [0] => 16h � 17h [1] => 56 [2] => 117 [3] => 54 [4] => 61 [5] => 58 [6] => 51 [7] => 68 [8] => 62 [9] => 102 [10] => 79 [11] => )
Array ( [0] => 15h � 16h [1] => 66 [2] => 73 [3] => 79 [4] => 70 [5] => 51 [6] => 49 [7] => 82 [8] => 77 [9] => 76 [10] => 82 [11] => )
Array ( [0] => 14h � 15h [1] => 86 [2] => 71 [3] => 73 [4] => 51 [5] => 58 [6] => 65 [7] => 65 [8] => 72 [9] => 69 [10] => 73 [11] => )
Array ( [0] => 13h � 14h [1] => 63 [2] => 65 [3] => 68 [4] => 52 [5] => 71 [6] => 64 [7] => 60 [8] => 80 [9] => 52 [10] => 58 [11] => )
Array ( [0] => 12h � 13h [1] => 67 [2] => 67 [3] => 52 [4] => 66 [5] => 52 [6] => 69 [7] => 76 [8] => 42 [9] => 40 [10] => 79 [11] => )
Array ( [0] => 11h � 12h [1] => 60 [2] => 60 [3] => 58 [4] => 53 [5] => 57 [6] => 54 [7] => 58 [8] => 44 [9] => 49 [10] => 96 [11] => )
Array ( [0] => 10h � 11h [1] => 59 [2] => 56 [3] => 71 [4] => 66 [5] => 53 [6] => 62 [7] => 53 [8] => 78 [9] => 48 [10] => 53 [11] => )
Array ( [0] => 9h � 10h [1] => 45 [2] => 48 [3] => 46 [4] => 64 [5] => 46 [6] => 45 [7] => 46 [8] => 71 [9] => 57 [10] => 47 [11] => )
Array ( [0] => 8h � 9h [1] => 43 [2] => 72 [3] => 42 [4] => 45 [5] => 40 [6] => 43 [7] => 41 [8] => 57 [9] => 45 [10] => 42 [11] => )
Array ( [0] => 7h � 8h [1] => 27 [2] => 17 [3] => 9 [4] => 18 [5] => 16 [6] => 30 [7] => 21 [8] => 16 [9] => 1 [10] => 10 [11] => )
Array ( [0] => 6h � 7h [1] => 3 [2] => 3 [3] => 16 [4] => 0 [5] => 0 [6] => 8 [7] => 1 [8] => 1 [9] => 14 [10] => 6 [11] => )
Array ( [0] => 5h � 6h [1] => 0 [2] => 0 [3] => 1 [4] => 0 [5] => 3 [6] => 21 [7] => 5 [8] => 8 [9] => 0 [10] => 3 [11] => )
Array ( [0] => 4h � 5h [1] => 0 [2] => 0 [3] => 0 [4] => 1 [5] => 3 [6] => 0 [7] => 6 [8] => 1 [9] => 1 [10] => 1 [11] => )
Array ( [0] => 3h � 4h [1] => 1 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 2 [7] => 1 [8] => 0 [9] => 7 [10] => 0 [11] => )
Array ( [0] => 2h � 3h [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 4 [7] => 4 [8] => 1 [9] => 7 [10] => 0 [11] => )
Array ( [0] => 1h � 2h [1] => 8 [2] => 2 [3] => 1 [4] => 2 [5] => 0 [6] => 1 [7] => 19 [8] => 1 [9] => 1 [10] => 1 [11] => )
Array ( [0] => 0h � 1h [1] => 1 [2] => 4 [3] => 0 [4] => 12 [5] => 14 [6] => 11 [7] => 16 [8] => 0 [9] => 1 [10] => 12 [11] => )
Array ( [0] => Total: [1] => 815 [2] => 893 [3] => 842 [4] => 829 [5] => 817 [6] => 856 [7] => 884 [8] => 841 [9] => 980 [10] => 956 [11] => )
Array ( [0] => Nombre porcs: [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => )
Array ( [0] => Total Gestantes: [1] => 8713 [2] => )
Array ( [0] => )
Array ( [0] => ) Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<!-- - phpMyAdmin XML Dump - version 4.7.4 - https://www.phpmyadmin.net - - Hôte : 127.0.0.1:3306 - Généré le : mar. 05 déc. 2017 à 12:42 - Version du serveur : 5.7.19 - Version de PHP : 5.6.31 -->
-<pma_xml_export xmlns:pma="https://www.phpmyadmin.net/some_doc_url/" version="1.0">
<!-- - Structure schemas -->
-<pma:structure_schemas>
-<pma:database charset="latin1" collation="latin1_swedish_ci" name="gestion_compteur_eau">
<pma:table name="releve"> CREATE TABLE `releve` ( `id` int(11) NOT NULL AUTO_INCREMENT, `type` varchar(50) DEFAULT NULL, `date` date NOT NULL, `heure_23` int(11) NOT NULL, `heure_22` int(11) NOT NULL, `heure_21` int(11) NOT NULL, `heure_20` int(11) NOT NULL, `heure_19` int(11) NOT NULL, `heure_18` int(11) NOT NULL, `heure_17` int(11) NOT NULL, `heure_16` int(11) NOT NULL, `heure_15` int(11) NOT NULL, `heure_14` int(11) NOT NULL, `heure_13` int(11) NOT NULL, `heure_12` int(11) NOT NULL, `heure_11` int(11) NOT NULL, `heure_10` int(11) NOT NULL, `heure_09` int(11) NOT NULL, `heure_08` int(11) NOT NULL, `heure_07` int(11) NOT NULL, `heure_06` int(11) NOT NULL, `heure_05` int(11) NOT NULL, `heure_04` int(11) NOT NULL, `heure_03` int(11) NOT NULL, `heure_02` int(11) NOT NULL, `heure_01` int(11) NOT NULL, `heure_00` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; </pma:table>
</pma:database>
</pma:structure_schemas>
<!-- - Base de données : 'gestion_compteur_eau' -->
-<database name="gestion_compteur_eau">
<!-- Table releve -->
</database>
</pma_xml_export>Quelqu'un pourrai m'aider?
JE ne sais pas sij'ai bien expliquer mon problème.
Je vous remercie par avance.