sql vers csv

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : sql vers csv

Re: un debut de reponse

par zastanak » 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

un debut de reponse

par ornitho13 » 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

par zastanak » 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

par zeus » 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")

sql vers csv

par zastanak » 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?