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 :

Trier colonne dans un CSV


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de guenfood
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2004
    Messages : 254
    Points : 126
    Points
    126
    Par défaut Trier colonne dans un CSV
    Bonjour,

    J'exécute un script quotidiennement sur mon serveur, pour transformer un fichier TXT, transmis par un fournisseur, en CSV afin de mettre à jour la base produit de mon site.
    Cependant, je souhaiterais que ce script me permette de faire un tri à partir de la colonne date, afin que les produits importés soient classés du plus ancien au plus récent.
    Ne sachant pas comment faire, je viens lancer un appel à l'aide.

    Voici le code actuel du script.
    Merci par avance de votre aide.

    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
    <?php
    setlocale(LC_TIME, "fr_FR");
    unlink("./data/updatedb.csv");
    unlink("./data/stock.csv");
    rename("./data/UPDATEDB.TXT", "./data/updatedb.csv");
    $newfichier = fopen("./data/sortie_stock.csv", "w");
    // crée le fichier cible s'il n'existe pas ou écrase s'il existe déjà
    fclose($newfichier);
    $lines = file('./data/updatedb.csv'); // ouverture du fichier d'origine
    $fp = fopen("./data/stock.csv","w"); //création du fichier de sortie
    $tampon = ""; // initialisation de la variable tampon
    foreach ($lines as $lineNumber => $lineContent) // boucle pour parcourir le fichier d'origine
    {	
    	if (strpos($lineContent,"#<SEPARATOR>#") !== false) // condition si la ligne contient séparateur
    	{
    		$tampon = $tampon . $lineContent; // ajout du contenu de la ligne au tampon
    $arr_base = explode(";",$tampon);
    $uc_12 = $arr_base[12];
    $ucfirst = ucfirst(mb_strtolower($uc_12));
    $tampon = str_replace($uc_12,$ucfirst,$tampon);		
    $uc_13 = $arr_base[13];
    $ucfirst = ucfirst(mb_strtolower($uc_13));
    $tampon = str_replace($uc_13,$ucfirst,$tampon);	
    $uc_15 = $arr_base[15];
    $ucfirst = ucfirst(mb_strtolower($uc_15));
    $tampon = str_replace($uc_15,$ucfirst,$tampon);
    $uc_17 = $arr_base[17];
    $ucfirst = ucfirst(mb_strtolower($uc_17));
    $tampon = str_replace($uc_17,$ucfirst,$tampon);
    $uc_18 = $arr_base[18];
    $ucfirst = ucfirst(mb_strtolower($uc_18));
    $tampon = str_replace($uc_18,$ucfirst,$tampon);	
    $uc_10 = $arr_base[10];
    $date = strftime("%d %B %Y", strtotime($uc_10));
    $tampon = str_replace($uc_10,$date,$tampon);		
    		fputs($fp,$tampon); // écriture de la ligne tampon dans le fichier
    		$tampon = ""; // clear du tampon
    	}else{ // condition si ne contient pas de séparateur
    		$tampon = $tampon . trim($lineContent); // alors ajoute le contenu au tampon déjà existant
    	}
    }
    fclose($fp); // fermeture du fichier
    file_put_contents('./data/sortie_stock.csv', file_get_contents('./data/format.csv') . file_get_contents('./data/stock.csv') );
    ?>

  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
    Les données dans une base de données n'ont pas à avoir un ordre d'insertion : une requête SELECT n'est d'ailleurs pas supposée sortir les données dans leur ordre d'insertion.

    S'il faut ordre, celui-ci doit être spécifié dans la requête .Il faut une colonne dans la table qui permette de classer les données ; dans ton cas il faut donc reporter le date dans la table.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué Avatar de guenfood
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2004
    Messages : 254
    Points : 126
    Points
    126
    Par défaut
    L'import se fait via le plugin WP ALL IMPORT sous WordPress.
    Ce plugin parcourt le fichier CSV et met à jour en partant de la première ligne à la dernière ligne.
    Du coup, ce sont les derniers produits de ce fichier qui apparaissent à la Une de mon site (mais qui ne sont pas forcément les plus récents).
    Les produits en questions sont des livres. Je souhaite que ce soit les livres parus les plus récemments qui soient à la Une

  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
    Je t'ai expliqué que l'ordre dans une table se défini au moment de la requête SELECT par au moment de l'INSERT.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [2008] Ajout colonne dans fichier CSV
    Par Herlece dans le forum SSIS
    Réponses: 7
    Dernier message: 11/03/2013, 18h20
  2. Ajout de colonne dans fichiers csv
    Par ze_mechant dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/07/2012, 15h45
  3. Bouton trier colonne dans un sous formulaire
    Par Chichou87 dans le forum IHM
    Réponses: 1
    Dernier message: 18/01/2007, 22h38
  4. Réponses: 4
    Dernier message: 13/12/2006, 17h10
  5. [débutant] nombre de colonne dan sun fichier csv
    Par mandagor dans le forum C++
    Réponses: 18
    Dernier message: 15/06/2005, 15h42

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