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 :

Injection fichier exell en spécifiant la ligne de départ.


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    support IT
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : support IT

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Injection fichier exell en spécifiant la ligne de départ.
    Bonjour,
    j'utilise ce genre de script (qui fonctionne bien) pour importer des fichier xls dans un bd mysql mais j'aimerais pourvoir lui spécifier à partir de quelle ligne il doit commencer l'injection et à partir de quelle ligne celle-ci ce termine, pouvez vous m'aider ? merci d'avance :

    voici le script :

    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
    //Le chemin d'acces a ton fichier sur le serveur 
    $fichier = fopen("nom_du_fichier.text_ou_.csv", "r" ); 
     
    //tant qu'on est pas a la fin du fichier : 
    while (!feof($fichier)) 
    { 
    // On recupere toute la ligne 
    $uneLigne = fgets($fichier, 1024); 
    //On met dans un tableau les differentes valeurs trouvés (ici séparées par un ';') 
    $tableauValeurs = explode(';', $uneLigne); 
    // On crée la requete pour inserer les donner (ici il y a 12 champs donc de [0] a [11]) 
    $sql="INSERT INTO Balance VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."', '".$tableauValeurs[3]."', '".$tableauValeurs[4]."', '".$tableauValeurs[5]."', '".$tableauValeurs[6]."', '".$tableauValeurs[7]."', '".$tableauValeurs[8]."', '".$tableauValeurs[9]."', '".$tableauValeurs[10]."', '".$tableauValeurs[11]."')"; 
     
    $req=mysql_query($sql)or die (mysql_error()); 
    // la ligne est finie donc on passe a la ligne suivante (boucle) 
    } 
    //vérification et envoi d'une réponse à l'utilisateur 
    if ($req) 
    { 
    echo"Ajout dans la base de données effectué avec succès"; 
    } 
    else 
    { 
    echo"Echec dans l'ajout dans la base de données"; 
    }

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il suffit de compter les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ligne_debut = 16;
    $ligne_fin = 24;
     
    if (($handle = fopen("nom_du_fichier.text_ou_.csv", "r")) !== FALSE) {
        $l = 1;
        while ((($data = fgetcsv($handle, 1000, ";")) !== FALSE) && ($l <= $ligne_fin)) {
            if ($l >= $ligne_debut) {
                $sql = "INSERT INTO Balance VALUES ('". implode("';'", $data) . "')"); 
                $req = mysql_query($sql) or die (mysql_error());
            }
            ++$l;
        }
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    support IT
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : support IT

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    merci de ta réponse,

    Bon je n'y suis toujours pas arriver ton code me donne une erreur,
    ce de code peux normalement injecter le csv ou il faut le greffer à mon code de départ ?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il y a une parenthèse en trop, tu aurai pu corriger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO Balance VALUES ('". implode("';'", $data) . "')";
    Ca va à la place de ton vilain code
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Homme Profil pro
    support IT
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : support IT

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci
    je suis autodidacte tous ce que je sais viens d'Internet donc ben je fait ce que je peux je test çà demain
    Snif mon code etait vilain main bon çà fonctionnais moi qui était content

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    C'était une blague. J'ai juste simplifié la requête que tu avais écrite variable par variable.

    Par contre l'extension mysql est obsolète.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Candidat au Club
    Homme Profil pro
    support IT
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : support IT

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Oui oui t’inquiète je plaisantais aussi je suis conscients que je suis pas du tous au top mais bon j'aime faire çà et j'essaie de m'améliorer avec les conseils que l'on me donne

Discussions similaires

  1. [VBA-E]fermer les fichier exel en cour lors d'une ouverture
    Par fournier dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/02/2006, 09h54
  2. Réponses: 2
    Dernier message: 05/12/2005, 15h57
  3. parcour de fichier et retour a la ligne?
    Par xtaze dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 01/11/2005, 22h54
  4. ecrire dans un fichier un retour a la ligne
    Par ETI-trian dans le forum C++
    Réponses: 8
    Dernier message: 17/10/2005, 09h51
  5. Effacer le contenu d'un fichier a partir d'une ligne
    Par localhost dans le forum Linux
    Réponses: 3
    Dernier message: 04/04/2004, 04h47

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