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

PostgreSQL Discussion :

aide pour exporter une base de donnée


Sujet :

PostgreSQL

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut aide pour exporter une base de donnée
    Bonjour tout le monde, je voudrai vous poser une petite colle :

    je voudrai exporter une bdd postgresql avec une interface HTML (en PHP plutot), bref dans mon programme, je voudrai choisir un endroit du disque dur (exemple avec un <input type='file'>) et exporter toute cette base de donnée dans un .sql.

    voila ce que je ve faire : ), jai trouver une commande qui le fait c pg_dump mais la maintenant le probleme que jai c que le bouton parcourir renvoye un mauvais chemin.

    Merci pour votre aide

  2. #2
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    Le pb vient de ton champ input qui te renvoie un chemin sur la machine de l'utilisateur et non du serveur. Tu ne peux pas le faire directement en php, il faut écrire de zolis routines pour cela qui te permettront de te ballader sur le serveur.

    Cf forum PHP !

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    vi je ve un chemin de la machine de lutilisateur, vu que la base de donnée il va lexporter sur cette machine, mais le probleme c quil menvoye le mauvais chemin ex /temp/php/dE25 un truc comme ca et no /home/maison par exemple comment je peut faire pour avoir le vrai chemin

  4. #4
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    Le problème, c'est que pg_dump ne peut pas faire de transférer à travers un interface http. Il faudrait d'abord exporter ton fichier sur le serveur dans une zone temporaire (/tmp au hasard), puis redirigé le contenu sur le poste client via http en modifiant par exemple le header de la page pour éviter qu'elle ne s'affiche.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    si ca g trouver il existe une commande en PHP pour lancer des commande bash et postgresql, je lai tester, le tout maintenant c davoir le chemin dans une variable et la c un autre probleme et c donc ca qe je demande, tien voila le code :

    $output = `pg_dump -h adresse ip -U nomutili nom base > $nomfichier`;

    enfin la ligne de code.

    Donc voila si tu pouvais me dire comment faire car jai essayer ca :

    <form action="<? echo $PHP_SELF ?>" method="post" enctype="multipart/form-data">

    <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
    <input type="file" name="nomfichier" size="40" maxlength="80">
    <input type="submit" value="Envoyer">


    <?
    if($userfile != '')
    { echo " voila l'arborescence : $nomfichier";
    $output = `pg_dump -h lagaffe -U ts2iris9 matthieu > $nomfichier`;
    }
    ?>
    </form>

    et ca me renvoye une mauvaise arborescence.

  6. #6
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    C'est ce que je disais plus haut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="nomfichier" size="40" maxlength="80">
    permet d'indiquer à l'utilisateur un chemin sur SA MACHINE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $output = `pg_dump -h lagaffe -U ts2iris9 matthieu > $nomfichier`;
    te permet d'exporter la base sur LE SERVEUR dans le fichier $nomfichier. C'est à dire si tu remplit ton formulaire avec un fichier appelé /tmp/test.sql, il ira crée un fichier /tmp/test.sql sur le serveur et non sur le post client.

    Il faut donc que tu enlèves la redirection de fichier de pg_dump pour récupérer le résultat et le renvoyer sur la page web avec par exemple un "print $output".

    De plus, d'où vient ta variable $userfile ? Pour ma part, j'aurai plutôt testé si $nomfichier est vide ou non.

    @+

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    oui je me suis tromper, il fau remplacer $userfile par $nomfichier.

    J'ai tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $output = `pg_dump -h lagaffe -U ts2iris9 matthieu > $nomfichier`;
    Ca me crée bien un fichier .sql sur le post client, je doit juste recupérer le chemin exact du fichier selectionner avec <input type='file'>. Je n'arrive qu'a recuperer le nom de ce fichier avec $_FILE et non pas le chemin complet.

    Pouvez vous me dire s'il y a une fonction qui permet cela, c'est a dire de récuperer le chemin complet de ce qui se trouve dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="nomfichier" size="40" maxlength="80">
    Je vous remercie pour votre aide.

  8. #8
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    Il faudrait demander ceci au forum php, tu trouveras plus d'expert là-bas.

    Quand tu créé ton fichier, où se trouve-t-il sur ta machine cliente ?

    Pour ma part, cela me semble hallucinant que l'on puisse créer à distance un fichier sur un poste client sans passer par l'étape de téléchargement... A mon avis, ton fichier se trouve sur ton serveur... ou alors, j'ai loupé des étapes.... A moins que tu ne relise ton fichier dans un second temps et que tu le redirige.

    La redirection de ton pg_dump se fait nécessairement là où est exécuté le script php, c'est à dire côté serveur... peut-être que chez toi, client & serveur sont sur la même machine.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ben en faite cette fonction je lai réaliser dans le terminal de ma debian, et il ma bien crée un fichier .sql sur ma machine client.

    Merci pour ton aide encore.

    je vais aller poster de ce pas un message sur le forum PHP.

    Ciao ciao

Discussions similaires

  1. [AC-2003] Aide pour modéliser une base de données
    Par Gozer72 dans le forum Modélisation
    Réponses: 4
    Dernier message: 23/11/2013, 16h50
  2. aide pour importer une base de données sous MySQL
    Par karimeri dans le forum Débuter
    Réponses: 4
    Dernier message: 20/01/2010, 18h02
  3. requête pour exporter une base de donnée
    Par miage2 dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/01/2010, 14h47
  4. Réponses: 11
    Dernier message: 05/06/2008, 10h39
  5. Comment exporter une base de donnée oracle à l'aide de EXP
    Par med_anis_dk dans le forum Import/Export
    Réponses: 6
    Dernier message: 16/06/2006, 14h27

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