sql vers csv

Eléphanteau du PHP | 12 Messages

29 oct. 2008, 12:42

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?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 oct. 2008, 13:00

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")
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 12 Messages

29 oct. 2008, 13:20

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

Petit nouveau ! | 5 Messages

29 oct. 2008, 15:15

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

Eléphanteau du PHP | 12 Messages

29 oct. 2008, 23:09

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