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 :

export table mysql en fichier texte


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 56
    Points : 60
    Points
    60
    Par défaut export table mysql en fichier texte
    Bonjour,

    Je suis en train d'écrire une méthode ayant pour but d'exporter la base de donnée en fichier texte pour l'utiliser sur d'autre serveur en utilisant un web service soap.
    la fonction écrit par moi:
    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
    function exportf(){
     
    //Requete SQL
     
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'service';
    $nom_fichier = 'export.txt';
     
    //format du CSV
    $csv_terminated = "\n";
    $csv_separator = ";";
    $csv_enclosed = '"';
    $csv_escaped = "\\";
     
    // requête MySQL
     
     
    // connexion à la base de données
     
    	$db1=new PDO('mysql:host=localhost;dbname=service','root','');
    	$sql_query ="SELECT * FROM myusers";
    	//$sql_query->execute();
    /*$link = mysql_connect($host, $user, $pass) or die("Je ne peux me connecter." . mysql_error());
    mysql_select_db($db) or die("Je ne peux me connecter.");*/
     
    // exécute la commande
    $result = $db1->query($sql_query);
    $fields_cnt =$result->columnCount();
     
     
    $schema_insert = '';
     
    for ($i = 0; $i < $fields_cnt; $i++)
    {
    	$col = $result->getColumnMeta($i);
    	//$columns[] = $col['name'];
        $l = $csv_enclosed . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed,
    stripslashes($col['name'])) . $csv_enclosed;
        $schema_insert .= $l;
        $schema_insert .= $csv_separator;
    } // fin for
     
    $out = trim(substr($schema_insert, 0, -1));
    $out .= $csv_terminated;
     
    // Format des données
    while ($row = $result->fetch())
    {
        $schema_insert = '';
        for ($j = 0; $j < $fields_cnt; $j++)
        {
    if ($row[$j] == '0' || $row[$j] != '')
    {
     
        if ($csv_enclosed == '')
        {
    $schema_insert .= $row[$j];
        } else
        {
    $schema_insert .= $csv_enclosed .
        str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j]) . $csv_enclosed;
        }
    } else
    {
        $schema_insert .= '';
    }
     
    if ($j < $fields_cnt - 1)
    {
        $schema_insert .= $csv_separator;
    }
        } // fin for
     
        $out .= $schema_insert;
        $out .= $csv_terminated;
    } // fin while
     
    // Envoie au fureteur pour le téléchargement
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Length: " . strlen($out));
    header("Content-type: text/x-csv");
    header("Content-Disposition: attachment; filename=" . $nom_fichier);
    return $out;
    exit;
     
    }
    l'appel du méthode par le servce web:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     error_reporting(E_ALL);
         // Pull in the NuSOAP code
        require_once('lib/nusoap.php');
        // Create the client instance
        $client = new nusoap_client('http://localhost/testajout/server.php');
    	$client->call('exportf');
    La fonction d'exportation génére un fichier.csv directement téléchargeable mais lors de l'appel de la méthode le téléchargement ne se lance pas.

  2. #2
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 36
    Points : 42
    Points
    42
    Par défaut
    Salut,

    Je n'ai jamais mis ce type d'appel en place en PHP.
    Mais es-tu sûr que ta fonction doit employer pour produire le contenu du fichier téléchargeable ?
    Ce ne serait plutôt un qu'il faut faire ?

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    je ne comprends pas ta fonction call là dans ta convocation ?

    Moi, j'aurais mis ta méthode de classe dans la classe nusoap_client (pas bien de mettre un nom de classe qui ne commence pas par une majuscule, ceci dit).
    Et surtout, il faut définir comme publique la portée de ta méthode, pour pouvoir l'appeler "depuis un objet".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public function exportf(){
     
    }
    Ensuite pour la convoquer, ça donnerait ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $client = new nusoap_client('http://localhost/testajout/server.php');
    $cur_csv=$client->exportf();
    Ceci dit, active tes messages d'erreur Apache parce que sinon, tu ne vas pas avancer.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 56
    Points : 60
    Points
    60
    Par défaut
    Ce type d'appel est de nusoap web service.(création d'un service web avec php).
    Lors du l'appel un téléchargement du fichier $nom_fichier doit lancé.

  5. #5
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    c'est peut être bête à dire mais pourquoi écrire un script en php pour un export de sgbd?
    tu ne peut pas utiliser la commande exec et lancer un batch qui va faire le dump de ta base via les fonction intégré du sgbd? cela serai plus simple et plus sur non ? charge à toi après de prendre le ficheir générer et d'en faire ce que tu souhaite.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Il existe dans mysql un moteur de table csv. Va voir là : http://www.borelly.net/cb/docs/mysql...storage-engine

Discussions similaires

  1. PHP Exportation table MySQL vers Fichier
    Par smotte76 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 10/06/2009, 07h53
  2. Réponses: 1
    Dernier message: 21/07/2006, 11h54
  3. Delphi7 - Export d'une table dans un fichier texte
    Par jer64 dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/06/2006, 00h33
  4. Export Table Acces vers fichier Texte
    Par ston dans le forum Access
    Réponses: 2
    Dernier message: 04/04/2006, 17h21
  5. export table dans un fichier texte
    Par cchampion2fr dans le forum Access
    Réponses: 23
    Dernier message: 07/09/2005, 11h33

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