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 :

Export en PHP de colonnes selectionnées d'une table MySQL vers un fichier TXT


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Points : 52
    Points
    52
    Par défaut Export en PHP de colonnes selectionnées d'une table MySQL vers un fichier TXT
    Bonjour,

    J'ai une table MySQL dont le but est de gérer un CRUD dont le contenu ressemble à ceci : http://s529471052.onlinehome.fr/bs3/crud-sqli/index.php

    Lorsqu'un le l'utilisateur clique sur le bouton "Add New" il peut, grâce à des formulaires prédéfinies envoyer des données dans la table MySQL.
    Ensuite la table est triée ASC selon la colonne PART_EPOCH (ceci fonctionne bien)


    Ma table à été créée comme ceci :
    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
    --
    -- Structure de la table `crud_mysqli`
    --
     
    CREATE TABLE IF NOT EXISTS `crud_mysqli` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `PART_ID` varchar(255) COLLATE latin1_general_ci NOT NULL,
      `PART_FAVORITE` varchar(255) COLLATE latin1_general_ci NOT NULL,
      `PART_NAME` varchar(255) COLLATE latin1_general_ci NOT NULL,
      `PART_TYPE` varchar(255) COLLATE latin1_general_ci NOT NULL,
      `PART_SET_ORDER` varchar(255) COLLATE latin1_general_ci NOT NULL,
      `PART_HUMAN_DATETIME` varchar(255) COLLATE latin1_general_ci NOT NULL,
      `PART_EPOCH` int(13) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=104 ;

    Cependant, je n'arrive à effectuer ceci :

    Je voudrai extraire la valeur MINimale de la colonne PART_EPOCH et envoyer vers un fichier TXT le contenu des colonnes correspondantes : PART_EPOCH et PART_ID
    Le fichier TXT ne contiendra qu'une seule ligne et si le fichier existe déja il sera écrasé au profit du nouveau.
    les valeurs seraient séparées par une virgule et \n sera ajouté en fin de la ligne.

    Je cherche à écrite la fonction de creation du fichier TXT crite en PHP car ma base MYSQL ne permet pas l'utilisation de la commande MySQL "SELECT INTO FILE" (dommage ça aurait été plus simple)

    Voici le code PHP que j'ai essayé d'écrire mais qui ne fonctionne pas, le fichier est bien crée mais son contenu reste vide.
    J'ai l'impression que ma requete qui selectionne la valeur MIN dans la colonne PART_EPOCH n'est pas bonne car elle ne retourne rien non plus lorsque je l'envoi dans la console MyPHP Admin

    Ma table s'appelle `crud_mysqli`
    Les colonnes utiles s'appellent PART_EPOCH et PART_ID

    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
     
    		// Sort table according to "PART_EPOCH"	column
    		$sort_table = "SELECT *
    		FROM `crud_mysqli`
    		ORDER BY `crud_mysqli`.`PART_EPOCH` ASC" ;
     
    		$query = mysqli_query($conn, $sort_table);
     
     
     		// Output txt file 			
    		// Find PART_EPOCH MIN value and send PART_EPOCH and PART_ID associated to TXT file
    		$path = getcwd() . '/next_event.txt';
     
    		$next_event = "SELECT 
    		PART_ID
    		PART_EPOCH
    		FROM crud_mysqli
    		WHERE PART_EPOCH = (SELECT MIN(PART_EPOCH) FROM crud_mysqli)
    		";
     
    		$result = mysqli_query($conn, $next_event) or die ( "Extract min error : " . mysqli_error( ) );
     
    		// Write each row from $result into a file
    		$row = mysqli_fetch_array($result, MYSQLI_ASSOC) or die ( "Sql error : " . mysqli_error( ) );
    		$file = fopen($path, 'w');
     
    		foreach ($row as $val) {
    		    fputcsv($file, $val);
    		}
     
    		fclose($file);
    		chmod($file, 0777);
    Je vous remercie beaucoup pour votre aide.

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    ca viendrait pas de ton order_by ? pourquoi mettre le nom de la table ?
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Points : 52
    Points
    52
    Par défaut
    Bonjour blueice

    Merci de votre réponse,

    Cela ne semble pas venir du tri ascendant en lui-même, car il fonctionne bien la table est bien triée.

    Le probleme vient de la requete qui va chercher la valeur minimale dans la colonne PART_EPOCH et selectionner ensuite le PART_ID associé pour inserer le résutat de la requete dans le fichier TXT.

    --

    J'avais aussi une autre idée pour parvenir à mon besoin :
    Puisque la table est triée de facon ascendante selon la colonne PART_EPOCH, finalement les données que j'ai besoin de collecter se trouve forcément dans la 1ere ligne de la ligne à l'issue du tri.

    Comment pourrais je faire avec une commande MySQL pour selectionner les colonnes PART_ID et PART_EPOCH de la 1ere ligne de ma table pour les insérer dans mon fichier TXT ?

Discussions similaires

  1. [MySQL] PHP : exporter une table MySQL vers un fichier Excel
    Par nonesofar dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/04/2016, 23h19
  2. [AC-2002] Changer le lien d'une table liée vers un fichier .txt
    Par FooL dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/06/2010, 04h42
  3. [MySQL] Exporter une table Mysql vers CSV en utilisant PHP
    Par skins dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/06/2010, 20h33
  4. [Excel] Exporter une table MySQL vers un fichier .XLS sous linux
    Par Jlecp dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/03/2008, 19h59
  5. Exporter une table MySQL vers un fichier CSV
    Par sam01 dans le forum Outils
    Réponses: 2
    Dernier message: 07/08/2007, 16h44

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