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 :

Faire un tableau dynamique


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut Faire un tableau dynamique
    Bonjour, après avoir chercher pas mal de temps, je poste ma demande!!
    Voilà,j'ai une base de donnée exportée en fichier en format csv, je dois mettre ces données dans un tableau...
    pour le moment, ça fonctionne parce que j'ai codé en dur les infos relatives à ce fichier...sauf qu'il ne fonctionnera plus si je change de fichier... je voudrais donc pouvoir faire ce tableau sans savoir le nombre de colonne, leur nom... le faire dynamiquement!
    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
    //Permet de lire le fichier csv et de séparer les colonnes par lignes
    $handle = fopen($fichier, "r"); // ouvre le fichier csv en lecture seule ("r")
     
    //Création du tableau qui contiendra les données du fichier csv	
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) 
    {
    	$num2 = count($data); //nous donne le nombre de champs/colonnes
     
    	for ($c=0; $c < $num2-1; $c++) 
    	{	
    		$donneesCSV[]= array(
    		'NUMTICKET_CSV'=>''.$data[$c++].'',
    		'DATEHEURETIC_CSV'=>''.$data[$c++].'',
    		'MONTANT_CSV'=>''.$data[$c++].'',
    		'TYPEACHAT_CSV'=>''.$data[$c++].''  );
     
    	} 
    }
    Voilà!! je galère franchement!!! Y a t-il un développeur pour me sauver?!!! lol

  2. #2
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut
    Je m'auto réponds...
    J'ai utilisé un switch pour parer à tous les nombres de colonnes...mais je ne suis pas sure que ça soit la bonne solution!!
    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
     $donneesCSV = array();	
     
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) 
    {
    	$num2 = count($data); //nous donne le nombre de champs
     
    	for ($c=0; $c < $num2-1; $c++) 
    	{	
    		switch ($num2) 
    		{
    			case 0: $erreur_fichier= "il n'y a pas de colonne donc je suppose que le fichier est vide!";
    			break;
    			case 1:$array= array('1'=>''.$data[$c++].'');
    			break;
    			case 2:$array= array('1'=>''.$data[$c++].'','2'=>''.$data[$c++].'');
    			break;			
    			 case 3:
    			$array= array('1'=>''.$data[$c++].'','2'=>''.$data[$c++].'','3'=>''.$data[$c++].'');
    			break;
    			   case 4:
    			$array= array('1'=>''.$data[$c++].'','2'=>''.$data[$c++].'','3'=>''.$data[$c++].'','4'=>''.$data[$c++].'');
    			break;
    		}
     
    		$donneesCSV[] = $array;
    	}
    }
    Voilà si y a une autre solution je suis preneuse!!!

  3. #3
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Points : 248
    Points
    248
    Par défaut
    Ca devrait le faire comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //Permet de lire le fichier csv et de séparer les colonnes par lignes
    $handle = fopen($fichier, "r"); // ouvre le fichier csv en lecture seule ("r")
     
    //Création du tableau qui contiendra les données du fichier csv	
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) 
    {		
    	foreach($data) as $key => $val) {
    		$arr[] = $val;
    	}
     
    	$donneesCSV[]= $arr; 
    }

  4. #4
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Hello,
    Je suis pas sûr d'avoir bien compris ton problème... mais au niveau juste algorithme, est-ce qu'un truc comme ça passerait ?
    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
     
     $donneesCSV = array();	
     
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) 
    {
    	$num2 = count($data); //nous donne le nombre de champs
    	if ($num2!=0)
    	{
    		for ($c=0; $c < $num2; $c++) // pourquoi $num2-1 ???
    		{	
    			$array[] = $data[$c];	 
    		}
    		$donneesCSV[] = $array;
    	}
    	else
    	{
    		$erreur_fichier= "il n'y a pas de colonne donc je suppose que le fichier est vide!";
    		// je suis pas sûr de comprendre l'utilité de cette ligne
    		// une ligne peut être vide $num2==0 sans que le fichier soit vide...
    	}
    }
    My daughter, my laptop, my bike and my double-sticks...

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par djibxav Voir le message
    Ca devrait le faire comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //Permet de lire le fichier csv et de séparer les colonnes par lignes
    $handle = fopen($fichier, "r"); // ouvre le fichier csv en lecture seule ("r")
     
    //Création du tableau qui contiendra les données du fichier csv	
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) 
    {		
    	foreach($data) as $key => $val) {
    		$arr[] = $val;
    	}
     
    	$donneesCSV[]= $arr; 
    }
    Euh, ton code tel quel ne m'affiche rien , en le modifiant un peu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach($data as $key => $val) {
    	$arr[]= $val;
    	}
     
    	$donneesCSV[]= $arr;
    via un print_r($donnéesCSV) il m'affiche 150 fois chaque enregistrement et si j'enlève les [] à , il m'affiche tous les enregistrements mais que la dernière colonne...donc à priori ça ne fonctionne pas... mais merci quand même!!

  6. #6
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par kalimukti Voir le message
    Hello,
    Je suis pas sûr d'avoir bien compris ton problème... mais au niveau juste algorithme, est-ce qu'un truc comme ça passerait ?
    Mon problème: au départ, je sais combien de colonnes il y a dans mon fichier et le nom de ces colonnes, donc je peux faire mon tableau comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) 
    {
    	$num2 = count($data); //nous donne le nombre de champs
     
    	for ($c=0; $c < $num2-1; $c++) 
    	{
    	        $donneesCSV[]= array(
    		'NUMTICKET_CSV'=>''.$data[$c++].'',
    		'DATEHEURETIC_CSV'=>''.$data[$c++].'',
    		'MONTANT_CSV'=>''.$data[$c++].'',
    		'TYPEACHAT_CSV'=>''.$data[$c++].''  );
    	}   
    }
    sauf que je dois le rendre dynamique, c'est à dire que ce tableau doit être fait en ne connaissant pas le contenu de mon fichier csv... donc je ne connais pas le nombre de colonnes, leurs noms... et le problème: comment faire ce tableau en ne connaissant pas ces renseignements?

    Par contre, j'ai testé ton code et même remarque que pour djibxav, tel quel il m'affiche 150 fois chaque enregistrement et en enlevant les [] il ne m'affiche que la derniere colonne

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    voici un bout de code qui devrait aller :
    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
    <?php
     
    $first_row = true;
    $fields    = array();
    $data      = array();
     
    while(($row = fgetcsv($handle, 1000, ';')) !== false) {
        if ($first_row) {
            $fields    = $row;
            $first_row = false;
        }
        else {
            $data[] = array_combine($fields, $row);
        }    
    }
    Je considère que ton csv est bien formé et que la 1ère ligne contient les en-têtes des colonnes

  8. #8
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut
    rawsrc,je n'ai pas eu le temps de tester ton code...des que c'est fait je mettrais les résultats!!
    Mon nouveau souci c'est que bon mon tableau est dynamique grace à mon sxitch mais j'ai une requete merge qui doit l'être aussi maintenant...et pareil que pour le tableau,je rame!!!!
    Ma requête merge fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for($a=0;$a<$ligneTableau;$a++)
    {
    	$sqlMerge= "MERGE INTO $NOMTABLE  USING dual ON ($CLEPRIMAIRE = '".$donneesCSV[$a]['1']."')
    	WHEN MATCHED THEN UPDATE SET DATEHEURETIC=TO_DATE('".$donneesCSV[$a]['2']."', 'SYYYY-MM-DD HH24:MI:SS'), MONTANT = '".$donneesCSV[$a]['3']."', TYPEACHAT='".$donneesCSV[$a]['4']."'
    	WHEN NOT MATCHED THEN INSERT (NUMTICKET,DATEHEURETIC, MONTANT, TYPEACHAT) VALUES ('".$donneesCSV[$a]['1']."',TO_DATE('".$donneesCSV[$a]['2']."', 'SYYYY-MM-DD HH24:MI:SS'),'".$donneesCSV[$a]['3']."','".$donneesCSV[$a]['4']."')";
     
    	$resultatMerge = $db->exec($sqlMerge);
     
    }
    Alors, la grande question qui se pose : comment rendre cette requête dynamique... je ne connais pas le nombre de colonne, ni leur nom par avance... et faut que cette requête s'adapte à toutes les possibilités comme pour le tableau...
    au secours!!!!!!!

  9. #9
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Points : 248
    Points
    248
    Par défaut
    Tes colonnes qui sont inconnus, sont-elle tout de même attendues ?

    Pour être plus précis, attends-tu par exemple x colonnes parmis 20 labels possibles.

    Dans ce cas, c'est gérable. Si tu traite des infos 100% inconnues, ça va être un peu plus chaud.

  10. #10
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut
    non, elles ne sont pas connues no attendues...en fait cette requete doit pouvoir d'adapter à toutes les tables de ma base de données... et oui, je sais que c'est super chaud...je galère!!!!!!!!!

  11. #11
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Points : 248
    Points
    248
    Par défaut
    Si la requête doit s'adapter a toutes les tables c'est que tu attend tout de même d'un fichier qu'il ai une structure et des données correspondantes à une table de ta base ?

  12. #12
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    donc tu peux avoir un fichier qui contient des lignes
    avec un certain nombre de colonnes (de 1 à x (25 par exemple))
    mais pas forcément toutes remplies
    sans titres (sur la première ligne)
    les colonnes ne sont pas forcément dans l'ordre ?
    certains fichiers doit être ajouté dans une table d'autres dans une autre
    le nom de fichier te permet d'identifier la table de destination ?
    le contenu des colonnes permet d'identifier la colonne de destination dans la table ?
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  13. #13
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par djibxav Voir le message
    Si la requête doit s'adapter a toutes les tables c'est que tu attend tout de même d'un fichier qu'il ai une structure et des données correspondantes à une table de ta base ?
    oui tout a fait, le fichier aura forcément la même structure que l'une de mes tables!!
    sauf que pour le moment j'ai une base de données fictives... enfin, du moins c'est pour que je teste mon application et après elle devra s'adapter à la vraie base!

  14. #14
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    donc tu peux avoir un fichier qui contient des lignes
    avec un certain nombre de colonnes (de 1 à x (25 par exemple))
    mais pas forcément toutes remplies
    Jusque là oui!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sans titres (sur la première ligne)
    si il y aura forcément le nom des colonnes dans mon fichier csv à la 1ere ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    les colonnes ne sont pas forcément dans l'ordre ?
    si je pense que oui vu que le fichier csv est un export de la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    certains fichiers doit être ajouté dans une table d'autres dans une autre
    oui!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    le nom de fichier te permet d'identifier la table de destination ?
    non, j'ai voulu faire ce rapprochement mais mon tuteur m'a dit non!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    le contenu des colonnes permet d'identifier la colonne de destination dans la table ?
    non,je ne pense pas!

  15. #15
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Points : 248
    Points
    248
    Par défaut
    sans titres (sur la première ligne)
    si il y aura forcément le nom des colonnes dans mon fichier csv à la 1ere ligne
    les colonnes ne sont pas forcément dans l'ordre ?
    si je pense que oui vu que le fichier csv est un export de la table

    Solution capilotractée mais efficace normalement:

    Puisque tu connais tes tables, et les champs dans ton tableaux, tu crée une table d'index avec 2 champs:
    - nom de la table
    - concaténation des libellés des champs

    Quand tu lis la première ligne de ton fichier, tu concatène tout les labels, et tu cherche la table correspondante dans ta table index. Et voilà, tu sais avec quoi tu travaille.


    SI tu as 2 tables avec exactement la même structure, et que tu n'as pas d'autre moyen d'identifier la table puisque fichiers csv non nommés de façon a retrouver, alors appelle harry potter, parce qu'à part la magie rien ne te permettra de faire le trie entre 2 fichier à structure similaire, à mettre dans 2 tables à structure similaire.

    le nom de fichier te permet d'identifier la table de destination ?
    non, j'ai voulu faire ce rapprochement mais mon tuteur m'a dit non!
    Tu lui dira de ma part qu'il est stupide. C'est vraiment se créer des difficultés juste pour emmerder le monde que de ne pas mettre en place, à l'export, les outils qui permettront par la suite d'identifier le fichier.

  16. #16
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    Citation Envoyé par djibxav Voir le message
    Puisque tu connais tes tables, et les champs dans ton tableaux, tu crée une table d'index avec 2 champs:
    - nom de la table
    - concaténation des libellés des champs
    valable uniquement si il n'a pas deux tables avec les mêmes nom de champs dans le même ordre (je sais c'est un peu de l'extraction capillaire)

    si tu a dans la première ligne le nom des champs:
    tu peux savoir combien de colonnes il y a et la correspondance avec les champs de la table
    tu peux donc vérifier le nombre de data dans les lignes qu'il contient
    il te faut décider que faire si le nombre n'est pas correcte ou si l'une ou plusieurs des datas sont vides
    si le nom des champs du csv et identique au nom des champs, c'est mieux
    pour avoir les infos sur les champs tu peux faire une requête sql
    SHOW FULL COLUMNS FROM nom_de_la_table
    tu compare les informations au nom des champs si cela correspond tu connait la table sinon tu recommence pour la table suivante

    mais même remarque : valable uniquement si il n'a pas deux tables avec les mêmes nom de champs dans le même ordre
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  17. #17
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par djibxav Voir le message
    Solution capilotractée mais efficace normalement:
    Puisque tu connais tes tables, et les champs dans ton tableaux, tu crée une table d'index avec 2 champs:
    - nom de la table
    - concaténation des libellés des champs

    Quand tu lis la première ligne de ton fichier, tu concatène tout les labels, et tu cherche la table correspondante dans ta table index. Et voilà, tu sais avec quoi tu travaille.
    pour le moment je ne sais pas encore faire ce que tu préconise mais j'ai du mal à comprendre comment cela va rendre ma requête merge dynamique?!!

  18. #18
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Points : 248
    Points
    248
    Par défaut
    Citation Envoyé par patrickbaras Voir le message
    valable uniquement si il n'a pas deux tables avec les mêmes nom de champs dans le même ordre (je sais c'est un peu de l'extraction capillaire)
    Je sais bien, dans ce cas de figure son problème est proprement insoluble s'il n'y pas eu log du nom de table à l'export.


    pour le moment je ne sais pas encore faire ce que tu préconise mais j'ai du mal à comprendre comment cela va rendre ma requête merge dynamique?!!
    Si tu sais dans quelle table tu dois rentrer des infos, la suite est juste enfantine (enfin un enfant qui aurait des base de sql :p)


    Le problème que tu as, ce n'est pas de trouver des solutions ultra complexe pour entrer dans une table inconnue un fichier inconnu avec des données inconnues.

    Le vrai problème c'est d'identifier avec quoi tu travail, pour rendre la suite simplissime.


    Imagine un facteur avec une lettre sans adresse. Aucun algo ne permettra de trouver la bonne boite aux lettres. Par contre s'il trouve un moyen d'identifier l'adresse (en ouvrant le courrier ou autre), la suite c'est juste le quotidien de son boulot.

  19. #19
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Bonjour,

    voici un bout de code qui devrait aller :
    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
    <?php
     
    $first_row = true;
    $fields    = array();
    $data      = array();
     
    while(($row = fgetcsv($handle, 1000, ';')) !== false) {
        if ($first_row) {
            $fields    = $row;
            $first_row = false;
        }
        else {
            $data[] = array_combine($fields, $row);
        }    
    }
    Je considère que ton csv est bien formé et que la 1ère ligne contient les en-têtes des colonnes
    merci pour ce code qui fonctionne, il m'affiche les noms des colonnes et tout! c'est magique...mais j'avoue pas tout comprendre!! je vais faire des recherches!! par contre si je veux afficher un élément du tableau je fais comment? m'affiche array ...

  20. #20
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 58
    Points : 24
    Points
    24
    Par défaut
    en fait je vérifie déjà que le nombre de colonnes des 2 cotés st identiques, après je vérifie que les noms des champs st identiques et seulement là je lance mon merge... et c'est la que je bloque, ma requete ne s'adapte pas... enfin,j'ai du mal peut-être à me faire comprendre...
    Pour ce qui est du nom du fichier et celui de la table, mon tuteur m'a dit qu'on ne le vérifie pas et qu'on part du principe que l'utilisateur sait ce qu'il fait, et qu'il ne se trompe pas ni de fichier ni de table...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Mongoose Faire un tableau dynamique
    Par sabrinouch dans le forum NodeJS
    Réponses: 5
    Dernier message: 01/12/2014, 17h17
  2. [XL-2010] Faire un tableau dynamique croisé avec du texte
    Par PaulG2B dans le forum Excel
    Réponses: 5
    Dernier message: 17/04/2014, 16h32
  3. [E-03][Vba]faire une case totaux dans un tableau dynamique
    Par Overcrash dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/06/2008, 11h39
  4. Comment faire un tableau dynamique ?
    Par Nico128 dans le forum WinDev
    Réponses: 3
    Dernier message: 18/03/2008, 11h13

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