webForumDet fria alternativet

exportera från mySql till en fil på användarens dator

PHP

6 svar · 300 visningar · startad av vidstige

Medlem sedan nov. 200315 inlägg
Frågan#1

Hej!
Jag vill kunna välja ut värden från en tabell och spara det i en text fil på användarens dator. Alltså inte på servern.

Som koden ser ut nu så sparas den på servern. Jag vill att användaren ska få upp ett "spara fil som" fönster när han/hon trycker på en knapp

$query = mysql_query('SELECT * FROM tabell');
$file = fopen('export.txt', 'a');
  
while($row = mysql_fetch_row($query))
 {
   $row = implode(',', $row) . "\r\n";
   fwrite($file, $row);
 }
 
 fclose($file);
Medlem sedan sep. 2002366 inlägg
#2

Det ska nog funka bra om du pressar in det här längst upp i PHP filen, skriv ut texten istället för att skriva den till en fil som du gör nu bara.

$filename = "export.txt";
header( "Content-type: application/force-download" );
$user_agent = strtolower ($_SERVER["HTTP_USER_AGENT"]);

if ((is_integer (strpos($user_agent, "msie"))) && (is_integer (strpos($user_agent, "win"))))
	header( "Content-Disposition: filename=$filename");
else
	header( "Content-Disposition: attachment; filename=$filename");
Medlem sedan nov. 200315 inlägg
#3

När jag använder mig av din kod får jag ett felmedelande:
"Kan inte hämta exporttest.php. Går inte att öppna den här Internet-platsen. Platsen är inte tillgänglig bla bla..."

Filen som jag kör koden i heter alltså exporttest.php och jag skrver ut det jag hämtat från databasen i den filen.

Medlem sedan sep. 2002366 inlägg
#4

Verkar konstigt, testade med exakt samma headers som ovan det funkar. Du kan ju posta din kod om du vill.

Medlem sedan nov. 200315 inlägg
#5

Här kommer min kod:

$filename = "export.txt";
header( "Content-type: application/force-download" );
$user_agent = strtolower ($_SERVER["HTTP_USER_AGENT"]);
if ((is_integer (strpos($user_agent, "msie"))) && (is_integer (strpos($user_agent, "win"))))
	header( "Content-Disposition: filename=$filename");
else
	header( "Content-Disposition: attachment; filename=$filename");
require_once('Connections/ltiv.php');
$query = mysql_query('SELECT * FROM tabell);

while($row = mysql_fetch_row($query))
 {
   $row = implode(',', $row) . "\r\n";
   echo("$row");
 }
Medlem sedan sep. 2002366 inlägg
#6

Det saknas ' efter tabell i raden med $query

Medlem sedan nov. 200315 inlägg
#7

Oki
men det blev fel när jag skickade svaret den finns egentligen där...
När jag tar bort headerna så skrivs allt ut ifrån databasen...

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)