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

PHP & Base de données Discussion :

fichier texte to csv puis SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut fichier texte to csv puis SQL
    Bonjour.
    J'ai un projet PHP-MySQL.
    Je souhaite récupérer les informations présentes dans un script VBA pour en faire des données que je veux ensuite intégrer dans une table SQL.
    Le VBA doit être considérer comme un fichier texte, il a cette structure :
    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
            ElseIf Cells(i, Parcours).value = "A/Faron" Then
                Cells(i, Parcours - 4).value = "vélo"
                Cells(i, Parcours - 3).value = 27
                Cells(i, Parcours - 2).value = 600
                Cells(i, Parcours + 5).value = 370
                Cells(i, Parcours + 6).value = 4.2
            ElseIf Cells(i, Parcours).value = "3cols" Then
                Cells(i, Parcours - 4).value = "vélo"
                Cells(i, Parcours - 3).value = 114
                Cells(i, Parcours - 2).value = 3300
            ElseIf Cells(i, Parcours).value = "R/Faron" Then
                Cells(i, Parcours - 4).value = "vélo"
                Cells(i, Parcours - 3).value = 27
                Cells(i, Parcours - 2).value = 600
                Cells(i, Parcours + 5).value = 370
                Cells(i, Parcours + 6).value = 4.2
    Cela représentera des champs dans une table existante, je veux qu'un script (dans le langage que vous pensez le mieux adapté), mettedes en-tête pour Cells(i, Parcours).value, etc. et remplisse avec les données correspondantes R/Faron, etc.
    Merci de votre aide.

  2. #2
    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
    Pourquoi tu pars du script VBA et pas du fichier Excel resultant ?

    Quels sont les "en-têtes" que tu veux et qu'est ce que tu appelles "en-têtes" dans le contexte d'une base de données ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Bonjour.

    Citation Envoyé par sabotage Voir le message
    Pourquoi tu pars du script VBA et pas du fichier Excel resultant ?
    Je voulais refaire un exercice de style que j'avais déjà fait, il y a longtemps.

    Citation Envoyé par sabotage Voir le message
    Quels sont les "en-têtes" que tu veux et qu'est ce que tu appelles "en-têtes" dans le contexte d'une base de données ?
    Le nom des colonnes dans la table.

  4. #4
    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
    Tu parcoures ligne par ligne ton script. Pour chaque ligne avec une expression regulière tu recupères la valeur.
    Quand tu as les 6 valeurs, tu fais une insertion dans la table.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Oui merci, c'est bien cela que je veux faire mais j'ai du mal.
    D'ici ce week-end si j'ai un peu d'inspiration, je posterai ce que j'ai fait.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Bonjour.
    J'ai plus de difficultés que prévu.
    Je ne sais pas comment parcourir ligne à ligne ni créer mon tableau, ni utiliser les expressions régulières.
    Bref, j'en suis au début :
    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
    <?php  
    // le fichier  
    $fichier1 = '/Projet/parcours.txt';  
     
    // ouverture du fichier  
    $fp=fopen($fichier1,'r');  
     
     
    	i=1;
    	//Tant que le fichier n'est pas fini
    	while (!feof($fp)) {  
    	// lecture et decoupage des lignes  ;  
     
    		while (!feof($fp) ||//Tant que ElseIf n'est pas atteint
    		{
    		$Itineraire=//ce qu'il y a aprés 'Cells(i, Parcours).value = "' et avant '" Then'
     
    		//Si 'Cells(i, Parcours - 4).value = "' existe
    		$Sport=//ce qu'il y a aprés 'Cells(i, Parcours - 4).value = "' et avant "'"
     
    		//Si 'Cells(i, Parcours - 3).value = ' existe
    		$Distance=//ce qu'il y a aprés 'Cells(i, Parcours - 3).value = ' et avant la fin de la ligne
     
    		//Si 'Cells(i, Parcours - 2).value = ' existe
    		$Denivelee=//ce qu'il y a aprés 'Cells(i, Parcours - 2).value = ' et avant la fin de la ligne
     
    		//Si 'Cells(i, Parcours + 7).value = "' existe
    		$Commentaire=//ce qu'il y a aprés 'Cells(i, Parcours + 7).value = " ' et avant "'"
     
    		//Si 'Cells(i, Parcours + 8).value = "' existe
    		$Commentaire2=//ce qu'il y a aprés 'Cells(i, Parcours + 8).value = "' et avant "'"
     
    		//Remplit la ligne i avec ces valeurs
    		i++;
    		}
     
     
    }
     
    // fermeture du fichier  
    fclose($fp);  
    ?>  
     
    <table style="text-align: left; width: auto;" border="1"  
    cellpadding="2" cellspacing="2">  
    <tbody>  
    <tr>  
    <td style="vertical-align: top; width: 19px;">Itineraire<br>  
    </td>  
    <td style="vertical-align: top; width: 19px;">Sport<br>  
    </td>  
    <td style="vertical-align: top; width: 19px;">Distance<br>  
    </td>  
     
    <td style="vertical-align: top; width: 19px;">Denivelée<br>  
    </td>  
    <td style="vertical-align: top; width: 19px;">Commentaire<br>  
    </td>  
    <td style="vertical-align: top; width: 19px;">Commentaire2<br>  
    </td>  
    </tr>  
    <tr>  
    <td style="vertical-align: top;width: 19px;"><br>  
    </td>  
    <td style="vertical-align: top;width: 19px;"><br>  
    </td>  
    <td style="vertical-align: top;width: 19px;"><br>  
    </td>  
     
    <td style="vertical-align: top;width: 19px;"><br>  
    </td>  
    <td style="vertical-align: top;width: 19px;"><br>  
    </td>  
    <td style="vertical-align: top;width: 19px;"><br>  
    </td>  
    </tr>  
    <tr>  
    <td style="vertical-align: top;width: 19px;"><?php echo $Itineraire; ?><br>  
    </td>  
    <td style="vertical-align: top;width: 19px;"><?php echo $Sport; ?><br>  
    </td>  
    <td style="vertical-align: top;width: 19px;"><?php echo $Distance; ?><br>  
     
    </td>  
    <td style="vertical-align: top;width: 19px;"><?php echo $Denivelee; ?><br>  
    </td>  
    <td style="vertical-align: top;width: 19px;"><?php echo $Commentaire; ?><br>  
    </td>  
    <td style="vertical-align: top;width: 19px;"><?php echo $Commentaire2; ?><br>  
    </td>  
    </tr>  
    </tbody>  
    </table>  
    <br>  
    <br>  
    </body>  
    </html>

  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
    Il manque le $ ligne 9
    Ta ligne 11 et ta ligne 14 sont identiques.
    Par lire une ligne du fichier, la fonciton est fgets().
    Pour recuperer la donnée, preg_match()

    Une alternative a la lecture ligne par ligne c'est de recuperer les blocs elseif entier dans un grosse expression regulière et preg_match_all()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    J'ai beau regarder les doc et essayer. Je ne comprends pas ces fonctions, notament ce qu'elles doivent prendre en arguments.

  9. #9
    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
    fgets() a un seul argument donc ça ne devrait pas être trop dur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Bonjour.

    Le fichier ouvert par fopen() mais après, comment on le fait parcourir les autres lignes.

    Et preg_match(), comment il fonctionne.

  11. #11
    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
    Tu as lu la documentation de fgets ?

    Exemple #1 Lecture d'un fichier ligne par ligne
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Je l'ai lu mais je vais la relire, ça n'est pas clair pour moi.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/04/2011, 10h52
  2. MAJ d'un fichier texte par une requête sql
    Par kayserfc dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/12/2009, 08h39
  3. XML à fichier text ou csv : mise à plat
    Par fgachet dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 18/02/2009, 11h23
  4. Tranfert d'un fichier Texte dans une base SQL Serveur
    Par Coin dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/03/2007, 08h55
  5. Réponses: 1
    Dernier message: 02/11/2006, 10h40

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