tabel exporteren naar CSV
In phpmyadmin heb je een functie om een tabel uit je database te exporteren naar CSV. Hoe kan ik zelf een functie maken voor op een pagina die dit doet? Ik heb het nl nodig om gebruiksvriendelijk emaillijsten uit een database te halen, zodat die geimporteerd kunnen worden in een adressenbestand.
Groeten,
Martijn
Hoi'z Wil je doormiddel van een link/klik meteen de download laten starten ?
Ik heb 't zelfde een keer gemaakt, zal ff voor je zoeken...
ja in principe wel, zodat de gebruiker dit direct in zijn email / adressenprogramma kan importeren.
Kon um zo 123, niet terug vinden maar effe opnieuw in elkaar gezet :)
Ik neem aan dat ik het script niet hoef uit te leggen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?
$sqlhost="locahost";
$user="rene";
$password="geheim";
$dbase="dbasenaam";
header("Content-Type: application/csv");
header("Content-Transfer-Encoding: 8bit");
$db = mysql_connect($sqlhost, $user, $password);
mysql_select_db($database,$db);
$results = mysql_query("SELECT * FROM cblog");
$aantal = mysql_num_rows($results);
if ($aantal>"1") {
$myrow = mysql_fetch_assoc($results);
$output = "\"".implode("\",\"", array_keys($myrow))."\"\r\n";
do {
$output .= "\"".implode("\",\"", $myrow)."\"\r\n";
} while ($myrow = mysql_fetch_assoc($results));
}
$FileSize=strlen($output);
header("Content-Length: $FileSize");
header("Accept-Ranges: bytes");
header("Content-Disposition: attachment; filename=\"export.csv\"");
echo $output;
exit();
?>
$sqlhost="locahost";
$user="rene";
$password="geheim";
$dbase="dbasenaam";
header("Content-Type: application/csv");
header("Content-Transfer-Encoding: 8bit");
$db = mysql_connect($sqlhost, $user, $password);
mysql_select_db($database,$db);
$results = mysql_query("SELECT * FROM cblog");
$aantal = mysql_num_rows($results);
if ($aantal>"1") {
$myrow = mysql_fetch_assoc($results);
$output = "\"".implode("\",\"", array_keys($myrow))."\"\r\n";
do {
$output .= "\"".implode("\",\"", $myrow)."\"\r\n";
} while ($myrow = mysql_fetch_assoc($results));
}
$FileSize=strlen($output);
header("Content-Length: $FileSize");
header("Accept-Ranges: bytes");
header("Content-Disposition: attachment; filename=\"export.csv\"");
echo $output;
exit();
?>
Ik hoor/lees 't wel
Grts. René.
Heel erg bedankt, ben een beetje aan het spelen gegaan met je code, ik weet niet of jij toevallig ook met thunderbird werkt? Maar als ik nu het csv bestand bekijk zie ik dit:
http://i41.tinypic.com/suzr4k.jpg
Als ik het dan ga importeren in een adressenboek maakt ie er echt een zooitje van, bij het importeren geef ik aan dat veld name bij naam moet komen en email bij eerste emailadres, maar dit maakt hij ervan.:
http://i43.tinypic.com/2rnk0w2.jpg
Heel vreemd, hoe kan ie nu bij achternaam en weergave allemaal andere adressen neer gaan zetten?
Eugh.. nee daar werk ik niet mee, ik werk zelf ook niet met adreslijsten enz.
wat misschien het probleem is is de volgorde van de velden.
pas SELECT * FROM ... aan in SELECT naam,achternaam,email FROM ... zodat die niet alle records die in de export staan meegeeft.
Maar goed je hebt een beginnetje ;-)
't zou ook kunnen dat \n\r niet geactepteerd worden op een een of andere manier je zou er alleen \n van kunnen maken op regel 15 en 17
Succes ...
Grts. René