+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Candidat au titre de Membre du Club
    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 : 11
    Points
    11

    Par défaut Recuperer clé tableau 2 dimensions

    Bonjour,
    voila, je suis actuellement en stage en entreprise, et mon tuteur m'a demandé de faire une petite application qui servirait à mettre les données contenues dans un fichier csv dans une base de données oracle déjà existante, il faut pouvoir déterminer si les données du fichier csv ont été modifiées et s'il y en a des nouvelles...
    Du coup, j'ai décidé de mettre les données du fichier csv dans un tableau pour ensuite le comparer avec la table oracle sauf que je ne sais pas comment je dois faire pour récupérer la clé du tableau et la comparer à celle de la base de données...
    voila mon code pour créer le tableau
    Code :
    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
    $handle = fopen($fichier, "r"); // ouvre le fichier csv en lecture seule
    	while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) 
    	{
    	    $num2 = count($data); //nous donne le nombre de champs
     
    	    for ($c=0; $c < $num2; $c++) 
    	    {
    			$donneesCSV[]= array(
    				   'NUMTICKET_CSV'=>''.$data[$c++].'',
    				   'DATEHEURETIC_CSV'=>''.$data[$c++].'',
    				   'MONTANT_CSV'=>''.$data[$c++].'',
    				   'TYPEACHAT_CSV'=>''.$data[$c++].''  );
    	    }
    	}
    //Affichage du contenu du tableau $donneesCSV
    	foreach($donneesCSV as $cle=>$valeur)
    	{
    		echo "<b>Element $cle :</b><br />";
    		foreach($valeur as $ind=>$val)
    		{
    			echo " $ind :", $val, "<br />";
    		}
    	}
     
    	fclose($handle); //ferme le fichier csv

    je voudrais récupérer la valeur du numticket de chaque enregistrement pour pouvoir le comparer avec celui de la base de données oracle...
    quelqu'un peut-il m'aider?

  2. #2
    Membre à l'essai Avatar de Devether
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2004
    Messages : 66
    Points : 21
    Points
    21

    Par défaut

    Salut,

    Ton implémentation ne te donnera pas un tableau de données correct.
    C'est-a dire que ta boucle for ne sert pas à grand chose si tu mets des $c++ partout.

    Tu fais un tableau avec tes données CSV et chaque enregistrement du CSV correspond à un enregistrement BDD. Pourquoi est-ce que l'ID utilisé pour la BDD ne serait pas aussi un ID de ton tableau php ?

    EX :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) 
    {
    	$numticketCsv 		= $data[0];
    	$dateheureticCsv 	= $data[1];
    	$montantCsv 		= $data[2];
    	$typeachatCsv 		= $data[3];
     
    	$donneesCSV[$numticketCsv] = array( 			// Le numéro de ticket est en ID de chaque enregistrement
    		'DATEHEURETIC_CSV'	=> $dateheureticCsv,
    		'MONTANT_CSV'		=> $montantCsv,
    		'TYPEACHAT_CSV'		=> $typeachatCsv
    	);
    }
    @+

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •