IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Importer fichier csv vers bdd mysql [POO]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2019
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2019
    Messages : 101
    Par défaut Importer fichier csv vers bdd mysql
    class/Meteo.php

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    class Meteo {
     
    	public function __construct() {
     
    	}
     
    	public function insertMeteo($file) {
     
    		$mysqli = new mysqli('localhost', 'root', '', 'meteo');
    		$mysqli->set_charset("utf8");
     
    		if($mysqli->connect_errno) {
     
    			echo 'Erreur de connexion. Message d\'erreur : ' . $mysqli->connect_error;
     
    			exit;
    		}
     
    		$filename = $_FILES["upload"]["tmp_name"];
     
    		if($_FILES["upload"]["size"] > 0) {
     
    			$file = fopen($filename, "r");
     
    			while(($columm = fgetcsv($file, 10000, ",")) !== FALSE) {
     
    				$query = 'INSERT INTO meteo_city(ville_id, dates, ville_name, period, to_summarize, id_to_summarize,
    				minimum_temperature, maximum_temperature, commentaire)
    				VALUES ("' . $column[0] . '","' . $column[1] . '","' . $column[2] . '","' . $column[3] . '",
    				"' . $column[4] . '","' . $column[5] . '","' . $column[6] . '","' . $column[7] . '","' . $column[8] . '")';
     
    				$result = $mysqli->query($query);
     
    				if(!empty($result)) {
     
    					$message = '<p class="message">Les données ont bien été importées dans la bdd</p>';
     
    					return true;
    				}
    				else {
     
    					$message = '<p class="error">Les données n\'ont pas pu être importées dans la bdd</p>';
     
    					return false;
     
    					$mysqli->close();
    				}
    			}
    		}	
     
    		header('Location: index.php');
     
    		exit;
    	}
     
    	public function getMeteo() {
     
    		$mysqli = new mysqli('localhost', 'root', '', 'meteo');
    		$mysqli->set_charset("utf8");
     
    		if($mysqli->connect_errno) {
     
    			echo 'Erreur de connexion. Message d\'erreur : ' . $mysqli->connect_error;
     
    			exit;
    		}
     
    		$query = 'SELECT ville_id, dates, ville_name, period, to_summarize, id_to_summarize,
    		minimum_temperature, maximum_temperature, commentaire FROM meteo_city WHERE ville_id BETWEEN 3 AND 9';
     
    		$result = $mysqli->query($query);
     
    		if(!$result) {
     
    			echo 'Erreur au niveau de la requête. Message d\'erreur ' . $mysqli->error;
     
    			return false;
    		}
    		else {
     
    			while($row = $result->fetch_array()) {
     
    				$ville_id = $row['ville_id'];
    				$dates = $row['dates'];
    				$ville_name = $row['ville_name'];
    				$period = $row['period'];
    				$to_summarize = $row['to_summarize'];
    				$id_to_summarize = $row['id_to_summarize'];
    				$minimum_temperature = $row['minimum_temperature'];
    				$maximum_temperature = $row['maximum_temperature'];
    				$commentaire = $row['commentaire'];
     
    				$meteo_city[$ville_id]['dates'] = $dates;
    				$meteo_city[$ville_id]['Nom de la ville'] = $ville_name;
    				$meteo_city[$ville_id]['La période de la journée'] = $period;
    				$meteo_city[$ville_id]['Le résumer'] = $to_summarize;
    				$meteo_city[$ville_id]['L\'id du résumer'] = $id_to_summarize;
    				$meteo_city[$ville_id]['La température minimum'] = $minimum_temperature;
    				$meteo_city[$ville_id]['La température maximum'] = $maximum_temperature;
    				$meteo_city[$ville_id]['Le commentaire'] = $commentaire;
    			}
     
    			return $meteo_city;
     
    			$mysqli->close();
    		}
    	}	
    }
    display.php
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    require('class/Meteo.php');
     
    if(isset($_POST['uploadFormSubmit'])) {
     
    	if(!empty($_FILES)) {
     
    		$files = new Meteo();
    		$file = $files->insertMeteo($_FILES);
     
    		if($file === TRUE) {
     
    			$message = '<p class="message">Le chargement a réussi</p>';
    		}
    		else {
     
    			$message = '<p class="error">Le chargement a echoué</p>';
    		}
    	}
    }
     
    <div id="main">
    	<?php if(isset($message)) echo $message ?>
     
    	<form action="" method="post" id="uploadForm" enctype="multipart/form-data">
    		<p>Ajoutez le fichier CSV</p>
    		<input type="file" name="upload" value="">
    		<input type="submit" name="uploadFormSubmit" id="uploadFormSubmit">
    	</form>
    </div>
    Bonjour, j'ai une erreur
    Notice: Undefined variable: column in ->
    que je n'arrive pas à résoudre et bien sur rien n'est importée vers la bdd. Besoin d'aide, merci & bon Weekend

  2. #2
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    merci d'être plus précis : pas de variable column dans ton code et merci de donner le numéro de ligne sur laquelle porte l'erreur.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2019
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2019
    Messages : 101
    Par défaut
    Erreur ligne 31 & 32

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Erreur simple : ligne 27, tu as écrit $columm au lieu de $column.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2019
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2019
    Messages : 101
    Par défaut
    bien vue merci bien, mais maintenant j'ai ce message ->
    Notice: Undefined offset: 1 etc...

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Pour investiguer, il me serait plus simple de pouvoir exécuter ton code. Pour cela, peux-tu poster la DDL de ta table MySQL meteo_city ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Importer fichier csv vers excel avec vba
    Par Freudsw dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/09/2015, 17h01
  2. [XL-2010] Importer fichier CSV vers MYSQL en VBA Excel
    Par 6116d dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/06/2014, 16h40
  3. importation fichier csv vers mysql par php
    Par frboyer dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2009, 09h21
  4. [CSV] exporter des données d'un fichier CSV vers BD Mysql
    Par samsso2006 dans le forum Langage
    Réponses: 2
    Dernier message: 04/05/2007, 22h25
  5. [XML][MYSQL] Importation données XML vers BDD MySql
    Par Ben-o dans le forum XQUERY/SGBD
    Réponses: 2
    Dernier message: 04/05/2006, 18h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo