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 :

Champs CSV -> PHP -> Variables


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Champs CSV -> PHP -> Variables
    Bonjour à tous,

    Je possède un fichier CSV de ce type :

    -> valeur1,valeur2,valeur3

    Je souhaiterais assigner une variable par valeur afin d'arriver à quelque chose de semblable à cela :

    Var1=valeur1
    Var2=valeur2
    Var3=valeur3

    Par la suite j'aimerais jouer avec ces variables dans du code du genre :
    IF Var1 == "" Then echo "PAS DE VALEUR"

    J'ai vu pas mal de chose sur internet via mon ami google, il semblerait que la fonction "fgetcsv" soit appropriée.

    Pourriez vous m'expliquer ?

    Signé : Un noob

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 105
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 105
    Points : 8 228
    Points
    8 228
    Billets dans le blog
    17
    Par défaut
    Effectivement, fgetcsv( ) convient parfaitement.
    Tu trouveras de bons exemples dans la doc : http://fr2.php.net/manual/fr/function.fgetcsv.php
    En cas de question n'hésite pas
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je ne comprend vraiment pas comment faire.. Faut il utiliser obligatoirement la fonction "Array" pour stocker le résultat de la commande dans des variables ?

    Si oui, pourrais-je réutiliser ces variables en dehors du programme Php symbolisé entre <?php --- ?> .

    Dans l'idée je souhaiterais lire le fichier puis stocker les valeurs en variables dans une partie puis les afficher dans une seconde.

    Partie 1 : lecture du fichier et définition des variables

    Partie 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div affichage..> 
                  <?php echo $var  ?>
                 </div>

    Pourriez vous me donner un exemple ?

    Merci à tous.

  4. #4
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,

    Ba ca dépend de comment tu veut afficher les données et quel genre de données tu à, mais sinon y'a un exemple dans la doc :

    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
    $row = 1;
    if (($handle = fopen("test.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $num = count($data);
            echo "<p> $num champs à la ligne $row: <br /></p>\n";
            $row++;
            for ($c=0; $c < $num; $c++) {
                echo $data[$c] . "<br />\n";
            }
        }
        fclose($handle);
    }
    ?>


    Les boutons et existent, servez-vous en

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 105
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 105
    Points : 8 228
    Points
    8 228
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par ggaz47 Voir le message
    Je ne comprend vraiment pas comment faire.. Faut il utiliser obligatoirement la fonction "Array" pour stocker le résultat de la commande dans des variables ?
    fgetcsv( ) retourne un tableau. Stricto sensu tu n'es pas obligé d'utiliser array( ) car il existe list( ) ( http://fr.php.net/list ), mais je n'ai peut-être pas compris le fond de la question.

    Si oui, pourrais-je réutiliser ces variables en dehors du programme Php symbolisé entre <?php --- ?> .
    Tu peux utiliser fgetcsv( ) dans une partie de la page et utiliser le résultat dans une autre.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Mon fichier CSV ne comporte qu'un champ par ligne. les valeurs peuvent être du texte comme des nombres entiers.

    Ligne 1 : Champ 1 = valeur1,valeur2,valeur3


  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    faut pas confondre fichier Excel et CSV, dans Excel on n'ouvre pas un CSV mais on "importe" un CSV

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    J'ai réussi à faire ce que je voulais après de longues heures de galère!!

    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
    <?php
     
     
     
    		$row = 1;
    		$handle = fopen("ALRAFF.csv", "r");
    		while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
     
     
    			if ($row ==1) {
    			$num_cli_1 = $data[0];
    			$nom_cli_1 = $data[1];
    			$poste_1 = $data[2];
    			$descrip_1 = $data[3];
    			$num_itm_1 = $data[4];
    			$num_of_1 = $data[5];
    			$usine_1 = $data[6];
    			$alt_typ_1 = $data[7];
    			$alt_lib_1 = $data[8];
    			$texte_A_1 = $data[9];
    			$texte_B_1 = $data[10];
    			$texte_C_1 = $data[11];
    			$texte_D_1 = $data[12];
    			$texte_E_1 = $data[13];
     
    			}
     
    			if ($row ==2) {
    			$num_cli_2 = $data[0];
    			$nom_cli_2 = $data[1];
    			$poste_2 = $data[2];
    			$descrip_2 = $data[3];
    			$num_itm_2 = $data[4];
    			$num_of_2 = $data[5];
    			$usine_2 = $data[6];
    			$alt_typ_2 = $data[7];
    			$alt_lib_2 = $data[8];
    			$texte_A_2 = $data[9];
    			$texte_B_2 = $data[10];
    			$texte_C_2 = $data[11];
    			$texte_D_2 = $data[12];
    			$texte_E_2 = $data[13];
     
    			}
     
     
    		$row++;			
     
     
    		}
    		fclose($handle);
     
     
    		?>
    Qu'en pensez vous ?

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    un array_combine aurai été mieux

  10. #10
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 105
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 105
    Points : 8 228
    Points
    8 228
    Billets dans le blog
    17
    Par défaut
    Qu'en pensez vous ?
    Il n'y a que deux lignes dans ton fichier CSV ?
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Pour un array combiné pourriez vous me faire un exemple ?

    En effet il n'y a que deux lignes dans le CSV (export de données depuis AS/400 qui restera sur deux lignes en sortie).

  12. #12
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 105
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 105
    Points : 8 228
    Points
    8 228
    Billets dans le blog
    17
    Par défaut
    Tu peux t'inspirer de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $fields = array('num_cli', 'nom_cli', 'poste', 'descrip', 'num_itm',
                    'num_of', 'usine', 'alt_typ', 'alt_lib', 'text_A',
                    'text_B', 'text_C', 'text_D', 'text_E') ;
    $data = array( ) ; // Résultat
    $fp = fopen('ALRAFF.csv', 'r') ;
    while ( ($line = fgetcsv($fp, 1000, ',')) !== FALSE ) {
        $data[ ] = array_combine($fields, $line) ;
    }
    fclose($fp) ;
    print_r($data) ;
    http://fr.php.net/array-combine
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse !

    Ce que je souhaite faire après c'est par exemple comparer ces variables :

    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
    <?php
     
    							//detection client vide
    							if ($num_cli_1 != "") {
     
    								if ($num_cli_1 == $num_cli_2) {
    									echo "Client : " . $num_cli_1;
     
    								else 							
    									echo "Client 1 : " . $num_cli_1 . "Client 2 : " . $num_cli_2;
     
    								}
     
     
    							else 
    								echo "pas de client";
     
    							//fin detection client vide		
    							}
     
     
    							?>

  14. #14
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 105
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 105
    Points : 8 228
    Points
    8 228
    Billets dans le blog
    17
    Par défaut
    Avec l'exemple que je t'ai donné au lieu de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $num_cli_1 == $num_cli_2
    Tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data[0]['num_cli'] == $data[1]['num_cli']
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse, avec beaucoup de retard

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

Discussions similaires

  1. Champ caché ou non suivant variable PHP
    Par rvm31 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/10/2012, 13h46
  2. Réponses: 9
    Dernier message: 05/01/2006, 12h24
  3. [Librairies] générer un .csv en php pour excel
    Par allowen dans le forum Langage
    Réponses: 3
    Dernier message: 14/12/2005, 16h40
  4. [PHP-JS] variable php dans du javascript ?????
    Par lipczynski dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/08/2005, 14h26
  5. [PHP-JS] variable php à récupérer en JS
    Par mussara dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/01/2005, 16h34

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