Array aus Datenbank aus mehreren Tabellen als Exceldatei downloaden
Hallo Gemeinde,
ich grüble seit geraumer Zeit an diesem Problem und komme jetzt nicht mehr weiter.
Ich habe ein Script, welches mir mein MySQL-Array als Exceltabelle formatiert und zum downloaden anbietet.
Nun ist es aber so, dass ich in Tabelle "Veranstaltungen_Filme" eine Spalte "V_Format" habe in der aber nur eine Zahl steht, z.B. 21 und in Tabelle "Formate" ist die dazugehörige Bezeichnung dafür hinterlegt - es gibt dort also eine Spalte mit "id" , darin steht dann die 21 und eine Spalte mit "Name" , in der dann die Bezeichnung des Formates z.B. DVD steht.
Jetzt möchte ich, dass bei der Ausgabe des Arrays eben diese "21" mit dem Namen, also "DVD" ersetzt wird - ich weiss nur nicht, wie ich das query dafür schreiben muss.
Ich könnte mir vorstellen, dass es mit JOIN zu tun hat, bin mir da allerdings nicht sicher. Meine Query sieht derzeit folgendermaßen aus:
Dabei wird auch die Excel-Tabelle generiert, aber wenn ich sie öffne, fehlen einige Datensätze und zwar genau die, die in der Spalte "V_Format" keinen Eintrag haben.
Wie kann ich das lösen?
Für ein paar hilfreiche Tipps wäre ich sehr dankbar...
ich grüble seit geraumer Zeit an diesem Problem und komme jetzt nicht mehr weiter.
Ich habe ein Script, welches mir mein MySQL-Array als Exceltabelle formatiert und zum downloaden anbietet.
<?
$str=$Array;
function cleanData(&$str)
{
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
$filename = "Zusammenfassung_".date('Y-m-d').".xls";
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel");
$data=$str;
$flag = false;
foreach($data as $row) {
if(!$flag) {
echo implode("\t", array_keys($row)) . "\r\n";
$flag = true;
}
array_walk($row, 'cleanData');
echo implode("\t", array_values($row)) . "\r\n";
}
exit;
?>
Jetzt möchte ich, dass bei der Ausgabe des Arrays eben diese "21" mit dem Namen, also "DVD" ersetzt wird - ich weiss nur nicht, wie ich das query dafür schreiben muss.
Ich könnte mir vorstellen, dass es mit JOIN zu tun hat, bin mir da allerdings nicht sicher. Meine Query sieht derzeit folgendermaßen aus:
<?
$Array = "SELECT Veranstaltungen_Filme.ThemaNr, Veranstaltungen_Filme.Titel, Veranstaltungen_Filme.Regie, Veranstaltungen_Filme.Buch, Veranstaltungen_Filme.Kamera, Veranstaltungen_Filme.Ton, Veranstaltungen_Filme.Schnitt, Veranstaltungen_Filme.Musik, Formate.Name AS Format
FROM Veranstaltungen_Filme, Formate
WHERE ThemaNr='".$selectedNr."'
AND Veranstaltungen_Filme.V_Format = Formate.Format_id
ORDER BY Titel";
?>
Wie kann ich das lösen?
Für ein paar hilfreiche Tipps wäre ich sehr dankbar...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 266189
Url: https://administrator.de/contentid/266189
Ausgedruckt am: 21.11.2024 um 23:11 Uhr
2 Kommentare
Neuester Kommentar