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 :

[CSV] import de CSV différents


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Par défaut [CSV] import de CSV différents
    Bonjour à tous,
    je vous expose mon problème,
    je reçois plusieurs listes de produits avec beaucoup de paramètres ( prix, description, etc etc ) en format CSV

    je dois les importer dans ma BDD pour mettre à jour mon site!
    Cependant les CSV doivent tous correspondre au squelette de CSV du moteur d'importation mis en place!

    Pour changer ça, j'essaye de coder un nouveau moteur d'importation qui permet de faire correspondre les colonnes du CSV avec les champs d'une table choisie.

    Connaissez vous des brins de codes qui traite bien du problème d'import de CSV différents, d'adaptation à la BDD ?

    Merci de votre disponibilité,
    Bonne journée.

  2. #2
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Je te conseil de faire ton code sur mesure, ll sera plus lisible et plus adapté à tes besoins.

    Maintenant, si tu as besoin d'aide, dépose ton code et énonce les problèmes que tu rencontre. Tu as de bon exemple qui peuvent t'aider à démarrer sur le site php.net.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Bonjour et bienvenu sur le forum,

    Je ne pense pas qu'il y ait de difficulté majeure, il faut juste voir exactement tes contraintes.

    Par exemple : les colonnes du CSV ont-elles les mêmes noms que les champs de la table ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Par défaut
    Malheureusement non, les fournisseurs ne mettent pas tous les mêmes noms. Ni le même agencement des colonnes, ni les mêmes informations ( enfin certains pas autant que d'autre ), c'est le souci.

    Pour ce qui est le faire moi même, je vais essayer en partant du code ci-dessus , mais je ne suis pas très fort, je suis en stage actuellement, je suis en première année de BTS informatique option dev :/


    edit : merci du bienvenue, je vais chercher le topic des présentations si il y a !

  5. #5
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    mais je ne suis pas très fort
    Bon courage, c'est en forgeant que l'on devient forgeron

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Par défaut
    Bon alors, voici le problème lors de l'affichage :



    je penses que l'erreur se situe dans ce brin !

    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
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    <table width ="95%" cellspacing="0" cellpadding="4" border="0" style="font-family:courier new;font-size:12px" align="center">
    		<tr style="font-weight:bold">
    		<td>Champ de la table<span style="padding-left:30px">Forcer valeur</span><span style="padding-left:30px">md5(Valeur)</span><hr></td>
    		<td>Champ du fichier CSV<hr></td>
    		</tr>
    		<tr>
    		<td> 
    		<?php 
     
    		//g?n?ration des listes de gauche avec les champs de la bdd
     
    		$resQuery = requette("SHOW FIELDS FROM ".$_POST['table']." FROM mbconso_base");
    		$fields = mysql_num_rows($resQuery);
    		if (mysql_num_rows($resQuery) != 0) {
    			$j = 0;
    			while ($j < $fields) {
    				?>
    				<select name="colone<?php echo $j ; ?>"> 
    				<option value="" <?php if (!isset($_POST['colone0'])){ echo'selected'; } ?> >Choisissez une colonne</option>
     
    				<?php
     
    				// on affiche les champs de la table choisie
     
    				// titre des colonnes
     
    				$i = 0;
    				while ($i < $fields) {
    					echo "<option ";
    					if ($i == $j){ echo'selected '; }
    					echo "value=\"";
    					echo mysql_result($resQuery, $i);
    					echo "\">";
    					echo mysql_result($resQuery, $i);
    					echo "</option>";  
    					echo "\n";
     
     
    					$i++;
    				}
    				echo "\n";
     
    				?>  </select>
    				<input type="text" size="10" name="force<?php echo $j; ?>" style="width:100px;margin-left:3px">
    				<input type="checkbox" value ="1" name="crypte<?php echo $j; ?>" style="border:0; margin:0; padding=0; width:15px;margin-left:5px;">
    				<hr>
    				<?php  
     
    				$j++;
    			} // fin while j
     
    		} ?></td>
     
    		<td>
     
    		<?php
     
    		// g?n?ration des listes ---------------------------
     
    		$j = 0;
    		while ($j < $fields) {
    			?>
     
    			<select name="colonecsv<?php echo $j ; ?>"> 
    			<option value="" >Aucune correspondance</option>
     
    			<?php
     
    			// on affiche les colonnes du csv
     
    			// titre des colonnes
     
    			$i = 0;
    			while ($i < count($tabcsv)-1) {
    				echo "<option ";
    				if ($i == $j){ echo 'selected '; }
    				echo "value=\"";
    				echo $i;
    				echo "\">";
    				echo $tabcsv[$i];
    				echo "</option>";  
    				echo "\n";
    				$i++;
    			}
    			echo "\n";
     
    			?>   </select>
     
    			<hr>
     
     
     
    			<?php 
    			$j++;
    		} //-------------------------------
     
     
    	} else {
    		echo 'erreur. Fichier csv mal uploadé.<p>&nbsp;&nbsp;&nbsp;</p>';
    	}
     
     
    	?>
    		</td>
    		</tr>
    	<tr>
    	<td>
    	<input type="hidden" name="content_dir" value="<?php echo $content_dir ; ?>">		
    	<input type="hidden" name="name_file" value="<?php echo $name_file ; ?>">
    	<input type="hidden" name="table" value="<?php echo $_POST['table'] ; ?>">
    	<input type="hidden" name="fields" value="<?php echo $fields ; ?>">
    	<input type="hidden" name="del" value="<?php echo $_POST['del'] ; ?>">				
    	<input type="hidden" name="nb_colones_csv" value="<?php echo count($tabcsv)-1 ; ?>">				
    	<input type="hidden" name="listeok" value="1">
    	<input type="submit"  value ="Etape III > Importer dans la bdd">	
    	</td>
    	</tr>

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si c'est un problème de présentation que tu as, il faut regarder le code HTML final, ca sera beaucoup plus facile de travailler en partant de la.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [CSV] Import fichier csv
    Par Student3010 dans le forum Langage
    Réponses: 2
    Dernier message: 24/06/2008, 14h10
  2. [CSV] importer un CSV sur un serveur
    Par jb_du_ferret dans le forum Langage
    Réponses: 2
    Dernier message: 20/05/2008, 16h25
  3. Réponses: 9
    Dernier message: 31/01/2006, 22h42
  4. [CSV] Imports Excel CSV à reformater
    Par boteha dans le forum Langage
    Réponses: 13
    Dernier message: 23/01/2006, 21h41
  5. Import Excel / CSV
    Par aston_max dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 04/07/2004, 23h31

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