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 :

update base mysqlavec PHP


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 119
    Points : 41
    Points
    41
    Par défaut update base mysqlavec PHP
    Bonjour,

    Je suis en train de développer un script pour mettre a jour une base de données en ligne tout fonctionne correctement sauf que seul la derniere ligne de mon fichier texte se met à jour pas les autres, voici mon code :

    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
     
    $fichier= $_FILES["fichier"]["name"];
     
    $fp = fopen ($_FILES["fichier"]["tmp_name"], "r");
     
    $file = fgets($fp,4096);	
    $tabligne = explode("\n", $file);
    foreach($tabligne as $ligne) {
     
    // on crée un tableau des élements séparés par des points virgule
    $liste = explode(";",$ligne);
     
    // premier élément
    $liste[0] = ( isset($liste[0]) ) ? $liste[0] : Null;
    $liste[1] = ( isset($liste[1]) ) ? $liste[1] : Null;
    $liste[2] = ( isset($liste[2]) ) ? $liste[2] : Null;
    $liste[3] = ( isset($liste[3]) ) ? $liste[3] : Null;
    .....
    $champs2=$liste[0]; // code client
    $champs3=$liste[1]; // marque
    $champs4=$liste[2]; // sda
    $champs5=$liste[3]; // numero_transfert
    ....
    // pour eviter qu un champs du fichier soit vide
    if ($champs2!='')
    {
    // nouvel ajout, compteur incrémenté
    $cpt++;
    // requete et insertion ligne par ligne
     
    $sql = "UPDATE client SET code_client = \"$champs2\", marque = \"$champs3\", sda = \"$champs4\", numero_transfert = \"$champs5\", type = \"$champs6\", suivi_par = \"$champs7\", raison_sociale = \"$champs8\", complement = \"$champs9\", adresse1 = \"$champs10\", adresse2 = \"$champs11\", adresse3 = \"$champs12\", code_postal = \"$champs13\", ville = \"$champs14\", pays = \"$champs15\", civilite = \"$champs16\", nom = \"$champs17\", prenom = \"$champs18\", tel_fixe = \"$champs19\", tel_portable = \"$champs20\", fax = \"$champs21\", mail = \"$champs22\", mail_bis = \"$champs23\", date_naissance = \"$daten\", login = \"$champs25\", password = \"$champs26\" WHERE id_vp = \"$champs27\"";
     
    	  //exécution de la requête SQL:
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
    }
    }
     
    // fermeture du fichier
    fclose($fp);
    J'ai l'impression que la boucle ne se fait pas, merci pour votre aide.

  2. #2
    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
    fgets lit une seule ligne du fichier à la fois :
    Citation Envoyé par php.net
    Lit jusqu'à la taille length - 1 octet depuis le pointeur de fichier handle, ou bien la fin du fichier, ou une nouvelle ligne (qui est inclue dans la valeur retournée), ou encore un EOF (celui qui arrive en premier). Si aucune longueur n'est fournie, la fonction lira le flux jusqu'à la fin de la ligne.
    Donc si tu appelles fgets une seule fois, tu n'auras qu'une seule ligne parcourue.

    Pour lire un fichier entier en mettant une ligne du fichier par ligne d'un tableau : file (et en plus ça gère l'ouverture et la fermeture du fichier )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tabligne = file($_FILES["fichier"]["tmp_name"]);
    foreach($tabligne as $ligne) {
    // ...
    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]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 119
    Points : 41
    Points
    41
    Par défaut
    Kool ba je regarde ça effectivement c'était pas grand chose, merci de ton aide

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 119
    Points : 41
    Points
    41
    Par défaut
    Bon, j'ai testé mais toujours pareil il ne me mets a jour que la derniere ligne bizarre

Discussions similaires

  1. [NetBeans] Base données PHP
    Par Ryadus dans le forum NetBeans
    Réponses: 17
    Dernier message: 01/07/2010, 14h47
  2. [MySQL] Update multiples et PHP
    Par nath-0-0 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 24/04/2006, 12h48
  3. Problème Update Base de données avec les composants ADO
    Par lingli dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/04/2006, 00h41
  4. [MySQL] UPDATE base SQL par un script
    Par vanakor dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/02/2006, 10h22
  5. [VB.NET] Update base Access
    Par Nesmontou dans le forum ASP.NET
    Réponses: 6
    Dernier message: 16/06/2005, 09h42

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