Page 1 sur 1

sql vers csv

Posté : 29 oct. 2008, 12:42
par zastanak
bonjour

comment faire pour convertir des tables sql en csv ?
sans utiliser les fonctions de sql. c'est destiner a des personnes qui ne connaissent absolument rien en sql.
existe t'il un programme qui le fasse?

Posté : 29 oct. 2008, 13:00
par zeus
Si ton SGBD est MySQL, il y a la possibilité d'utiliser la syntaxe

Code : Tout sélectionner

SELECT ... INTO OUTFILE
http://dev.mysql.com/doc/refman/5.0/fr/select.html (recherche "INTO OUTFILE")

Posté : 29 oct. 2008, 13:20
par zastanak
le probleme c'est que c'est pour mettre les donnees dans un comparateur de prix.qui utilise des fichiers csv.
donc les commercants doivent pouvoir convertir leur base sql en csv sans avoir a aller sur mysql.
sa serait trop compliquer. je pense

merci quand meme

un debut de reponse

Posté : 29 oct. 2008, 15:15
par ornitho13
Salut,

tu peux faire une requete sur ta base et ensuite ecrire un fichier.csv que tu sauves dans la racine de ton comparateur de prix.

Une simple page en php fera l'affaire.
Ensuite cette page par exemple tu l'appelles par exemple tous les soirs à une heure fixe via un cron sur ton serveur qui met a jour ton fichier.

Exemple
//connection database
...
//requetes
"SELECT champ1, champ2 FROM ta_table";

//var qui récupère toutes les données
$data = "";
$data = "champ1, champ2 \n\r"; // \n\r pour passer une ligne
if($result=mysql_query($sql,$db){
   while($row = mysql_fetch_object($result)){
      $data .= "$row->champ1, $row->champ2\n\r";
   }
}
//ecriture dans un fichier
$file = "mon_dossier/mon_fichier.csv";
$sockfile =  fopen($file ,"w");
fputs ($sockFile, $data); 
fclose($sockFile);
J'ai volontaire omis de mettre toutes les verifications ( si on peut ouvrir le fichier ou non, acces a la base de données, etc...) mais tu pourras les rajouter

Ensuite sur ton serveur web, tu fais un cron
sur la console:
#crontab -e
0 19 * * * lynx url_de_ton_script.php

et voila ton script est executé tous les jours à 19 et génère un fichier .csv

bon courage

Si des interrogations persistent, n'hesite pas

Re: un debut de reponse

Posté : 29 oct. 2008, 23:09
par zastanak
Salut,

tu peux faire une requete sur ta base et ensuite ecrire un fichier.csv que tu sauves dans la racine de ton comparateur de prix.

Une simple page en php fera l'affaire.
Ensuite cette page par exemple tu l'appelles par exemple tous les soirs à une heure fixe via un cron sur ton serveur qui met a jour ton fichier.

Exemple
//connection database
...
//requetes
"SELECT champ1, champ2 FROM ta_table";

//var qui récupère toutes les données
$data = "";
$data = "champ1, champ2 \n\r"; // \n\r pour passer une ligne
if($result=mysql_query($sql,$db){
   while($row = mysql_fetch_object($result)){
      $data .= "$row->champ1, $row->champ2\n\r";
   }
}
//ecriture dans un fichier
$file = "mon_dossier/mon_fichier.csv";
$sockfile =  fopen($file ,"w");
fputs ($sockFile, $data); 
fclose($sockFile);
J'ai volontaire omis de mettre toutes les verifications ( si on peut ouvrir le fichier ou non, acces a la base de données, etc...) mais tu pourras les rajouter

Ensuite sur ton serveur web, tu fais un cron
sur la console:
#crontab -e
0 19 * * * lynx url_de_ton_script.php

et voila ton script est executé tous les jours à 19 et génère un fichier .csv

bon courage

Si des interrogations persistent, n'hesite pas

je vait essayer
merci de ton aide