Export sql to csv

sim -  
 sim -
Bonjour à tous,
je cherche un moyen d'exporter une table SQL en CSV.
Je recherche plus précisement une requête sql.
Merci à tous !
Configuration: Linux Debian
Mozilla 1.8.1.3

3 réponses

  1. Rodbertus
     
    Voici un exemple qui fonctionne sous Oracle à partir d'un script (pour d'autres bases, il faudra adapter, il y a des commande spécifiques).

    Le 1er SELECT génère la ligne 1 (nom des colonnes)
    Le 2ème est un SELECT (ici figuré par des constantes) qui ne retourne qu'une seule colonne issue de la concaténation des différents champs.
    Les commandes SET empêchent les affichages indésirables.
    La commande SPOOL force l'affichage vers le nom de fichiers spécifié.

    ----------------------- début du sql -------------------------------------

    set echo off;
    set head off
    set pagesize 0
    set feedback off
    set termout off

    spool MyFile.csv

    SELECT '"Titre1";"Titre2";"Titre3"' from dual
    ;

    SELECT
    '"'|| 'champ1' ||'";"'
    || 'champ2' ||'";"'
    || 'champ3' ||'"' as lig
    FROM
    dual
    WHERE
    1=1
    ;
    spool off;
    exit;

    ---------------------- fin du sql -------------------
    3
  2. sim
     
    merci pour cette réponse. Mais je comprends pas vraiment.
    Voila ce que j'ai reussi a faire :

    <?php
    
    	
    		$server="localhost";
    		$user="root";
    		$password="";
    		$db="born2dev";
    		
    		
    
    $db = mysql_connect($server, $user, $password); // connexion à la base
    mysql_select_db($db); // sélection de la base
    
    $req = mysql_query("SELECT * FROM news"); // on sélectionne les enregistrements
    $res = count($req);
    
    $file = ("bdd_fichier.xls"); // le fichier doit déjà exister
    if(!$myfile = fopen($file, "w")) //on ouvre le fichier
    {
    print("erreur: ");
    print("'$filename' n'existe pas!\n");
    exit;
    }
    
    WHILE($res!=$i) // 5. chaque fois que "$res" est dif. de "$i", donc qu'il y a un enreg.
    
    {
    $numero = mysql_result($req,$i,"***"); // on récupère les champs
    
    
    
    
    //ecriture
    
    
    fputs($myfile,"$id_com\t $id_news\t $nom\t $email\t $siteweb\t $com\n"); //on insère une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne
    
    
    $i++; // 8. on ajoute un au compteur et on retourne à WHILE
    }
    
    //fermeture fichier
    fclose($myfile); //on ferme le fichier
    echo "<center><h2>La table a été sauvegardée...</h2></center>";
    
    mysql_close(); // 9. on ferme la connexion
    ?>
    
    
    <form name="form0">
    <center><br><br><input type="button" value="Fermer" onClick="self.close()" name="button3"></center>
    </form> 
    	
    	


    Problème : il m'affiche ça :

    Warning: mysql_result(): supplied argument is not a valid MySQL result resource in h:\Sites\tests\affichertexte.php on line 35


    merci!
    1