So erstellen Sie eine temporäre Tabelle in MySQL Ausgabe Tabelle, die Daten als CSV-Datei?

Ich habe ein script zum erstellen einer CSV-Datei aus einer Datenbank-Tabelle, welche gut funktioniert, außer dass es gibt alle Daten in der Tabelle, und ich brauche es für die Ausgabe von Daten nur für den aktuellen angemeldeten Benutzer. Die app, die ich entwickle ist für die Nutzer zu speichern, Listen der Bücher, die Sie gelesen haben, Lesen wollen, etc., und ich möchte in der Lage sein, Ihnen zu ermöglichen, laden Sie eine Liste Ihrer Bücher können Sie in Excel importieren zum Beispiel. (Würde eine CSV-Datei werden die beste option dafür gegeben, dass es auch OpenOffice etc. sowie MS Excel?)

Ich herausgefunden, dass ich brauchte, um eine temporäre Tabelle eine select-Abfrage zu wählen Sie nur die Datensätze, die Zugehörigkeit zu den aktuellen angemeldeten Benutzer. Ich kann auf die Daten für den aktuellen Benutzer mit WHERE username='$session->username'.

Dachte ich, es wäre so einfach wie das erstellen der temporären Tabelle, bevor ich versuche, die Abfragen ausführen, die Ausgabe der Daten für die Verwendung in der CSV-Datei, und löschen Sie dann die Tabelle danach, aber ich habe versucht, die CSV-Erstellung-code wieder mit der temporären Tabelle erstellt, bevor die CSV-Zeug, und wieder die CSV-Datei erzeugt enthält alle Einträge für alle Benutzer.

Gibt es eine Konfigurationsdatei, wird die Datenbank-Verbindung, Eigenschaften, aber auch die Tabelle zum erstellen der Datei verwendet, da die variable $table, und ich habe eingestellt, das der name der temporären Tabelle, die ich versuche zu schaffen.

Dies ist der code den ich habe:

<?
$link = mysql_connect($host, $user, $pass) or die("Cannot connect to the database." . mysql_error());
mysql_select_db($db) or die("Can not connect.");

$temp = mysql_query("CREATE TEMPORARY TABLE books_temp SELECT * FROM books WHERE username='$session->username'");
$tempresult = mysql_query($temp);

$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$i = 0;
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output .= $row['Field']."; ";
$i++;
}
}
$csv_output .= "\n";

$values = mysql_query("SELECT * FROM ".$table."");
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j]."; ";
}
$csv_output .= "\n";
}

$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("d-m-Y") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
$query  = 'DROP TABLE books_temp';
$result = mysql_query($query);
exit;
?>

Funktioniert es tadellos die Ausgabe aller Daten, aber immer noch gibt die Daten wenn ich versuche, es mit der temporären Tabelle. Übrigens, ich habe versucht, entfernen Sie die Anweisung zum löschen der temporären Tabelle aus dem Ende als gut, und dass macht keinen Unterschied. Auch, Check-in PhpMyAdmin, es scheint nicht, als ob die temporäre Tabelle erstellt wird. Ich bin offensichtlich etwas falsch hier, oder etwas fehlt, aber ich habe keine Ahnung, was.

InformationsquelleAutor BlissC | 2009-11-14
Schreibe einen Kommentar