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 :

création de table (array) et Affectater les valeurs de table dans différentes variables [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut création de table (array) et Affectater les valeurs de table dans différentes variables
    Bonjour,
    J'ai un tableau dans un fichier TXT:
    "nom","prenom","email","id"
    "moto","toto","moto@toto.com","1255"
    "po","to","to@to.com","1254"
    "abtoto","ermoto","abtoto@cocooto.com","325"
    "cdtoto","tymoto","cdtoto@rororoto.com","25"
    Je veux transformer dans un array pour obtenir les variables: $nom, $prenom, $email, $id

    Comment je peux donner les bonnes valeurs aux mes variables ci-dessus ?


    Alors il faut que j'obtienne quelques choses comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $maTableTxt = array(
    1 => array('nom' => 'moto', 'prenom' => 'toto', 'email' => 'moto@toto.com', 'id' => '1255'),
    2 => array('nom' => 'po', 'prenom' => 'to', 'email' => 'to@to.com', 'id' => '1254'),
    3 => array('nom' => 'abtoto', 'prenom' => 'ermoto', 'email' => 'btoto@cocooto.com', 'id' => '25')
    //etc....
    );
    Comment puis-je faire ?

    je fais cela mais je n'arrive pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $filetxt = 'test.txt';
    $maTableTxt = array();
    $lines = file($filetxt, FILE_IGNORE_NEW_LINES);
     
    foreach ($lines as $lineNumber => $lineContent){
     
    foreach($maTableTxt as $cle => $valeur){
        foreach ($valeur1 as $cle2=>$valeur2){
         $contenuChaqueLine = str_replace ( '"' , '' , $lineContent );
    	echo $contenuChaqueLine; // pour voir si cela marche
        }
    }
    }
    Mais echo n'affiche rien.

    Où je fais des fautes ?

    Merci et bonne soirée

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    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
    $filetxt = 'test.txt';
    $maTableTxt = array();
    $lines = file($filetxt, FILE_IGNORE_NEW_LINES);
     
    foreach ($lines as $lineNumber => $lineContent){
     
    // maTableTxt est vide (voir ci dessus) donc forcement tu passeras jamais ici => pas d'echo....
    foreach($maTableTxt as $cle => $valeur){
     
        // d'ou sort ce $valeur1 ? Tombé du ciel????
        foreach ($valeur1 as $cle2=>$valeur2){
         $contenuChaqueLine = str_replace ( '"' , '' , $lineContent );
    	echo $contenuChaqueLine; // pour voir si cela marche
        }
    }
    }
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    C'est une structure de fichier CSV, ça. Donc autant utiliser les fonctions CSV

    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
    $filetxt = 'test.txt';
    $maTableTxt = array();
    if (($handle = fopen($filetxt, "r")) !== FALSE) {
        // la 1ere ligne contient l'entête, donc on l'ignore
        $data = fgetcsv($handle, 1000);
        // parcours des lignes
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $maTableTxt[] = array(
                                'nom' => $data[0],
                                'prenom' => $data[1],
                                'email' => $data[2],
                                'id' => $data[3]
                                );
        }
        // on oublie pas de fermer le fichier
        fclose($handle);
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Je sais que je suis un peu (mais très ) perdu cette tableau multiple...
    Citation Envoyé par marcuscircus Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
        // d'ou sort ce $valeur1 ? Tombé du ciel????

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Merci Celira,

    Est-ce qu'il faut ensuite ajouter foreach ?

    Je suis un peu perdu... avec ce tableau...

    J'ai obligé de faire deux foreache :
    1. pour enlever ["]
    2. pour trouver les valeurs

    voici ce que j'ai ajouté après ton code (après le fermeture du fichier):
    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
     
    //....
    fclose($handle);
    	foreach($maTableTxt as $cle=>$valeur) 
        { 
    	$maTableTxt = str_replace ( '"' , '' , $valeur );  // enlever "
     
    	/*
    	 	echo $cle.' : '.$valeur.'<br>'; 
    			//Ce que j'obtiensÙ:
    			0 : Array
    			1 : Array
    			2 : Array
    			3 : Array
     
    	*/
    	}
     
    	foreach($maTableTxt as $cle=>$valeur) 
        { 
        echo $valeur.'<br>'; 
        } 
    	/*
    	Ce que je l'obtiens :
    	cdtoto
    	tymoto
    	cdtoto@rororoto.com
    	25
    	*/
    Comment je peux affecter les valeurs de table dans mes variables ($nom, $prenom, $email, $id)

    ensuite, envoyer cela dans mon objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $utilisateur = new Compte();
    $utilisateur ->upDateUtilisateur($nom, $prenom, $email, $id);
    Merci

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Euh... normalement mon code retire aussi les ".

    Ce que tu as (normalement) à la sortie de mon code, c'est une liste de tableaux, avec chaque tableau qui correspond à une ligne de fichier.

    Après, il faut juste boucler dessus et utiliser les données.
    Par exemple pour afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach ($maTableTxt as $i => $ligne) {
        echo '<p>';
        echo 'Nom : '.$ligne['nom'].'<br>';
        echo 'Prénom : '.$ligne['prenom'].'<br>';
        echo 'Email : '.$ligne['email'].'<br>';
        echo 'Id : '.$ligne['id'];
        echo '</p>';
    }
    Ou pour utiliser ton objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ($maTableTxt as $i => $ligne) {
        $utilisateur = new Compte();
        $utilisateur ->upDateUtilisateur($ligne['nom'], $ligne['prenom'], $ligne['email'], $ligne['id']);
        // à suivre...
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Je l'ai trouvé :
    Je n'ai pas besoin de faire 2e foresach :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    /*
    foreach($maTableTxt as $cle=>$valeur) 
        { 
        echo $valeur.'<br>'; 
        } 
    */
    $nom = $maTableTxt[nom];
    	$prenom = $maTableTxt[prenom];
    Merci encore

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    donc ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Oui resolu

    Un grand merci, Celira,

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/03/2011, 13h02
  2. Réponses: 1
    Dernier message: 26/05/2010, 16h34
  3. Réponses: 2
    Dernier message: 23/11/2009, 21h11
  4. Réponses: 10
    Dernier message: 13/08/2009, 14h51
  5. [Hibernate] Comment ramener les valeurs des tables de ref ?
    Par PamelaGeek dans le forum Hibernate
    Réponses: 9
    Dernier message: 08/02/2006, 00h52

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