/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Sende MySQL data til csv-fil?
Fra : Dude


Dato : 04-02-08 18:35

Er der nogen der har et godt bud på hvordan jeg kan eksportere nogle
data fra min MySQL DB som en csv-fil?

- altså; et script som kan lave en csv-fil.

Mvh
John

 
 
Philip Nunnegaard (05-02-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 05-02-08 07:02

"Dude" <post@XxXx_mejlgade.dk> skrev i meddelelsen
news:47a74d7c$0$15015$ba624c82@nntp02.dk.telia.net...
> Er der nogen der har et godt bud på hvordan jeg kan eksportere nogle data
> fra min MySQL DB som en csv-fil?
>
> - altså; et script som kan lave en csv-fil.

PhpMyAdmin kan gøre det. Vælg database (og evt. tabel) og klik på "Eksport".
Til venstre lige ved siden af menuen er der nogle valgmuligheder - bl.a.
"CSV-data" og "CSV til MS Excel-data".


Mads Lie Jensen (05-02-2008)
Kommentar
Fra : Mads Lie Jensen


Dato : 05-02-08 08:16

On Mon, 04 Feb 2008 18:35:21 +0100, Dude <post@XxXx_mejlgade.dk> wrote:

>Er der nogen der har et godt bud på hvordan jeg kan eksportere nogle
>data fra min MySQL DB som en csv-fil?
>
>- altså; et script som kan lave en csv-fil.

I PEAR (http://pear.php.net) er der en klasse som hedder
Structures_DataGrid - som kan lave output i csv.

Hvis det kun er en sjælden gang du skal bruge den csv-fil, så er Philips
forslag med phpMyAdmin det hurtigste/nemmeste.
--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
Gartneriet - http://www.gartneriet.dk/

Dude (05-02-2008)
Kommentar
Fra : Dude


Dato : 05-02-08 18:50

Mads Lie Jensen wrote:
>
> Hvis det kun er en sjælden gang du skal bruge den csv-fil, så er Philips
> forslag med phpMyAdmin det hurtigste/nemmeste.

Det skulle gerne ende med en knap man klikker på: "Eksporter til CSV" -
og så genereres en csv-fil..... så det går ikke rigtig med PHPMyAdmin.

Mvh
John

Dan Storm (05-02-2008)
Kommentar
Fra : Dan Storm


Dato : 05-02-08 09:21

Dude skrev:
> Er der nogen der har et godt bud på hvordan jeg kan eksportere nogle
> data fra min MySQL DB som en csv-fil?
>
> - altså; et script som kan lave en csv-fil.
>

<?php

mysql_connect("localhost", "root", "password");
mysql_select_db("database");


$result = mysql_query("SELECT navn, adresse, postnr, by, telefonnummer,
email FROM table ORDER BY navn ASC");

$csv = "navn;adresse;postnr;by;telefonnummer;email\n";

while($obj = mysql_fetch_object($result))
{
   $csv .=
$obj->navn.";".$obj->addresse.";".$obj->postnr.";".$obj->by.";".$obj->telefonnummer.";".$obj->email."\n";

}

echo $csv;

?>



--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Dude (05-02-2008)
Kommentar
Fra : Dude


Dato : 05-02-08 18:53

Dan Storm wrote:

> <?php
>
> mysql_connect("localhost", "root", "password");
> mysql_select_db("database");
>
>
> $result = mysql_query("SELECT navn, adresse, postnr, by, telefonnummer,
> email FROM table ORDER BY navn ASC");
>
> $csv = "navn;adresse;postnr;by;telefonnummer;email\n";
>
> while($obj = mysql_fetch_object($result))
> {
> $csv .=
> $obj->navn.";".$obj->addresse.";".$obj->postnr.";".$obj->by.";".$obj->telefonnummer.";".$obj->email."\n";
>
>
> }
>
> echo $csv;
>
> ?>

Tak.
Så vidt jeg lige kan se, så er det vist "bare" selve indholdet til
filen? (ikke at kimse af, - det er også væsentligt, så tak for det)

Nu skal jeg så bare have lavet noget header-output-noget (forestiller
jeg mig...? Men det er jo så det jeg ikke rigtig ved hvordan gøres) - så
der dannes en fil.

Mvh
John


Birger (05-02-2008)
Kommentar
Fra : Birger


Dato : 05-02-08 19:21

"Dude" <post@XxXx_mejlgade.dk> skrev i en meddelelse
news:47a8a310$0$15009$ba624c82@nntp02.dk.telia.net...
> Dan Storm wrote:
8X
>
> Nu skal jeg så bare have lavet noget header-output-noget (forestiller jeg
> mig...? Men det er jo så det jeg ikke rigtig ved hvordan gøres) - så der
> dannes en fil.
>

Det er ikke nødvendigt, hvis du skal gemme i fil.

$handle = fopen( "filnavn", "w");
fwrite( $handle, "bla., bla., bla..."); // eller indhold af $csv..
fclose( $handle);

Skal nok krydres med lidt errorcheck og -handling etc., men eller skulle det
da være lige ud ad landevejen.

Se evt. http://dk.php.net/manual/en/function.fopen.php

Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt hurtigt og billigt. Daglig
opdatering.



Philip Nunnegaard (05-02-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 05-02-08 19:21

"Dude" <post@XxXx_mejlgade.dk> skrev i meddelelsen
news:47a8a310$0$15009$ba624c82@nntp02.dk.telia.net...
> Dan Storm wrote:
>
>> <?php
>>
>> mysql_connect("localhost", "root", "password");
>> mysql_select_db("database");
>>
>>
>> $result = mysql_query("SELECT navn, adresse, postnr, by, telefonnummer,
>> email FROM table ORDER BY navn ASC");
>>
>> $csv = "navn;adresse;postnr;by;telefonnummer;email\n";
>>
>> while($obj = mysql_fetch_object($result))
>> {
>> $csv .=
>> $obj->navn.";".$obj->addresse.";".$obj->postnr.";".$obj->by.";".$obj->telefonnummer.";".$obj->email."\n";
>> }
>>
>> echo $csv;
>>
>> ?>
>
> Tak.
> Så vidt jeg lige kan se, så er det vist "bare" selve indholdet til filen?
> (ikke at kimse af, - det er også væsentligt, så tak for det)
>
> Nu skal jeg så bare have lavet noget header-output-noget (forestiller jeg
> mig...? Men det er jo så det jeg ikke rigtig ved hvordan gøres) - så der
> dannes en fil.

Er det ikke bare at tilføje dette (inden database-kaldet):

echo "navn;adresse;postnr;by;telefonnummer;email";

Bortset fra, at der formentlig ikke er en kolonne, der hedder "by", da det
ville komme i konflikt med SQLs "by" (order by...)


Dan Storm (06-02-2008)
Kommentar
Fra : Dan Storm


Dato : 06-02-08 08:20

Philip Nunnegaard skrev:
> Bortset fra, at der formentlig ikke er en kolonne, der hedder "by", da
> det ville komme i konflikt med SQLs "by" (order by...)

argh, ja... :p det var bare et hurtigt skrevet eksempel... ;)

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Dan Storm (06-02-2008)
Kommentar
Fra : Dan Storm


Dato : 06-02-08 08:20

Dude skrev:
> Tak.
> Så vidt jeg lige kan se, så er det vist "bare" selve indholdet til
> filen? (ikke at kimse af, - det er også væsentligt, så tak for det)
>
> Nu skal jeg så bare have lavet noget header-output-noget (forestiller
> jeg mig...? Men det er jo så det jeg ikke rigtig ved hvordan gøres) - så
> der dannes en fil.

Well, hvis det er fordi du vil tvinge folk til at download CSV filen, så
er det her en mulighed:


<?php

mysql_connect("localhost", "root", "password");
mysql_select_db("database");


$result = mysql_query("SELECT navn, adresse, postnr, by, telefonnummer,
email FROM table ORDER BY navn ASC");

$csv = "navn;adresse;postnr;by;telefonnummer;email\n";

while($obj = mysql_fetch_object($result))
{
$csv .=
$obj->navn.";".$obj->addresse.";".$obj->postnr.";".$obj->by.";".$obj->telefonnummer.";".$obj->email."\n";

}

// bemærk headers
header("Content-Type: application/octet-stream");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=mitdata.csv");


echo $csv;

?>



>
> Mvh
> John
>


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Dude (06-02-2008)
Kommentar
Fra : Dude


Dato : 06-02-08 11:59

Dan Storm wrote:
> Dude skrev:

> Well, hvis det er fordi du vil tvinge folk til at download CSV filen, så
> er det her en mulighed:
>
>
> <?php
>
> mysql_connect("localhost", "root", "password");
> mysql_select_db("database");
>
>
> $result = mysql_query("SELECT navn, adresse, postnr, by, telefonnummer,
> email FROM table ORDER BY navn ASC");
>
> $csv = "navn;adresse;postnr;by;telefonnummer;email\n";
>
> while($obj = mysql_fetch_object($result))
> {
> $csv .=
> $obj->navn.";".$obj->addresse.";".$obj->postnr.";".$obj->by.";".$obj->telefonnummer.";".$obj->email."\n";
>
>
> }
>
> // bemærk headers
> header("Content-Type: application/octet-stream");
> header("Content-Description: File Transfer");
> header("Content-Disposition: attachment; filename=mitdata.csv");
>
>
> echo $csv;
>
> ?>
>
>
>
>>
>> Mvh
>> John
>>
>
>
Perfekt! - Tak
Mvh
John

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste