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 :

Multi download .text [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Par défaut Multi download .text
    Bonjour,

    Mon probleme est que je récupere des donnés par une requete SQL qui dépent de ce que l'utilisateur à cocher dans une 1ere page (à savoir une ou plusieurs langues et des données particulieres dans ces langues).
    J'aimerais créer pour chacune des langues un fichier texte avec les traductions selon les critères de l'utilisateur.
    Pour l'instant je récupere toutes ces données dans un unique fichier.

    J'ai essayé de faire une boucle de telle façon a ce que la commande pour creer le fichier soit réutilisé mais en vain...
    Avec ce code, mon unique fichier est bel est bien implémenter de toute les données mais un seul fichier créé...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $d=0;
    while ($d<sizeof($id_langue))
    {
    RECOVERING OF DATA
     
    		header('Content-Description: File Transfer');
    		header('Content-Type: application/octet-stream');
    		header('Content-Disposition: attachment; filename="'.ucfirst($id_lange[$d]).'.text";');
     
    $output_text .= $data[$element];
    }
    $d++;
    J'ai tenté de regénéré la page avec un header('Refresh: 5'); mais sans succès.
    L'url de la page dépent des choix de l'utilisateur donc faire un header(Location) serait quasi infaisable.

    Cordialement.

  2. #2
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Bonjour,

    Que contient $id_langue ?
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Par défaut
    $id_langue est un array contenant les id des langues sélectionnés à la page précedente.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Bonjour,

    tu pourrais créer une archive zippée contenant tous les fichiers de langue, ainsi tu n'auras qu'un seul fichier à télécharger mais qui contient tous tes fichiers.

    cette solution te convient-elle ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    re,

    je viens de regarder ton code, es-tu certain qu'il fonctionne ?
    en effet, tu fais une boucle while mais ton incrémentation $d se trouve en dehors de la boucle

  6. #6
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    anthony89 est pas loin de la vérité. Il est impossible de renvoyer plusieurs fichiers avec une seule requete. L'archive zip est la seule solution.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Par défaut
    Oui pardon, j'ai changé de code entre temps mais sans succès.

    La solution du fichier .zip me va a merveille, cependant, je ne sais pas comment faire pour le créer et l'implémenter de chaque .text selon les choix de l'utilisateur.

    Pouvez vous m'aider ?

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    tu peux faire ça grâce a ZipArchive et addFromString

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Par défaut
    Merci.

    Je dois rater quelque chose :

    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
     
    $zip = new ZipArchive;
    $d=0;
    while ($d<sizeof($id_langue))
    {
    $filename = "test.zip";
    $res = $zip->open($filename, ZipArchive::CREATE);	
     
    DATA SQL
     
    $zip->addFromString('"'.$id_lange[$d].'".text',"'.$output_text.'");
    $d++;
    }
    header('Content-type: application/zip'); 
    header('Content-Disposition: attachment; filename="' . $filename . '"'); 
    header("Content-length: " . filesize($filename)); 
     
    $zip->close();
    Je telecharge une archive test.zip corrompue...
    Une idée ?
    Merci encore.

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Par défaut
    Ton fichier zip doit être enregistrer quelque part puis tu renvoie le contenu de ce fichier zip.

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    et ton ouverture de zip doit se faire avant la boucle, je te conseil de parcourir ton tableau avec un foreach

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Par défaut
    Tout d'abord, merci de vos aides

    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
    $zip = new ZipArchive;
    $filename = "Langues.zip";
    $res = $zip->open($filename, ZipArchive::CREATE);
    foreach($id_langue as $value)
    {
    $sql ="SELECT...
     
    $file2 = "$value.text";
    $zip->addFromString($file2, $output_text);
    header('Content-type: application/zip'); 
    header("Content-Transfer-Encoding: binary"); 
    header("Content-length: ".filesize($filename)); 
    header('Content-Disposition: attachment; filename="'.$filename.'"');
    }
    $zip->close();
    readfile($filename);
    Le 2eme code me donne le meme resultat...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $file2 = "$value.text";
    $zip->addFromString($file2, $output_text);
    }
    $zip->close();
    header('Content-type: application/zip'); 
    header("Content-Transfer-Encoding: binary"); 
    header("Content-length: ".filesize($filename)); 
    header('Content-Disposition: attachment; filename="'.$filename.'"');
    readfile($filename);
    Mon fichier se télécharge bien dans Téléchargement, donc je ne pense pas devoir définir un emplacement si?
    Le problème est que mon .zip garde en mémoire tout ce qu'il a intégré comme fichier...
    Si je change le $filename, le resultat est bon.. mais si je refais en changeant les langues, les nouvelles langues s'ajoutent à ma nouvelle archive $filename(1).zip
    Un flush(); après le readfile n'y fait rien...

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Bonjour,

    as-tu essayé de supprimer le fichier zip avant de l'utiliser ?
    la fonction est unlink()
    tu dois la passer avant l'appel du constructeur ZipArchive

    pourras-tu nous tenir informé ?

  14. #14
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Par défaut
    Impeccable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $filename = "Langues.zip";
    unlink($filename);
    $zip = new ZipArchive;
    $res = $zip->open($filename, ZipArchive::CREATE);
    Plus de problème (enfin.. Il me reste à changer les ID en nom pour le nom du fichier).

    Merci à tous.

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    re-bonjour,

    de rien, on est là pour ca.
    oublies pas le bouton "résolu".
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une applet gérant le multi download
    Par Neilime05 dans le forum Applets
    Réponses: 4
    Dernier message: 15/03/2010, 13h42
  2. Unselect Multi line text box
    Par olibara dans le forum C#
    Réponses: 3
    Dernier message: 01/04/2008, 10h24
  3. Auto-scroll d'une zone de texte multi ligne
    Par malek_dz77 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/11/2005, 13h09
  4. [HTML] Supprimer le multi ligne d'une zone de text
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 29/11/2005, 14h49
  5. Multi Format dans une zone de texte ou active x
    Par nowick dans le forum Access
    Réponses: 5
    Dernier message: 22/10/2005, 20h23

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