Servus liebe Community,
ich arbeite derzeit an einem Projekt, bei dem ich Daten aus einer Datenbank auslese und anschließend in einer Excel-Datei Speichern muss.
Derzeit läuft es alles nur lokal auf einem XAMPP-Server und somit ist es auch eine MySQL Datenbank.
Soviel dazu, mein Problem ist folgendes...
In der Datenbank stehen in verschiedene Tabellen verteilt Kundendaten über vorhandene Schwerbehinderungnen, Schulabschlüsse oder sonstiges.
Diese Daten wurden vorher über Formulare eingegeben und in der Datenbank gespeichert.
Zum Speichern der Daten in Excel hatte ich vor das CSV-Format zu benutzen und dabei ist dann ein Problemchen aufgetaucht:
Hier der Code:
|
Quellcode
|
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
<?php
// Verbindungsdaten
$host = "localhost";
$username = "root";
$password = "";
$DB = "Kundendaten";
$con = mysql_connect($host, $username, $password );
$db = mysql_select_db("$DB", $con);
$sql_schwerbehinderung = mysql_query("SELECT * FROM schwerbehinderung");
$sql_schulabschluss = mysql_query("SELECT * FROM schulabschluss");
$list = array (
array('Formular 3', 'Schwerbehindert', 'Grad', 'Anerkannt', 'Antrag', 'Formular 4', 'Abschluss_erworben', 'Datum_erworben', 'Durchschnitt_erworben', 'Abschluss_anstreben', 'Datum_anstreben', 'Durchschnitt_anstreben')
);
$i = 1;
while($schwerbehinderung = mysql_fetch_row($sql_schwerbehinderung))
{
$schulabschluss = mysql_fetch_row($sql_schulabschluss);
$list[$i] = array(' ', $schwerbehinderung[1], $schwerbehinderung[2], $schwerbehinderung[3], $schwerbehinderung[4]);
$i++;
}
echo $schwerbehinderung[1];
mysql_close($con);
$fp = fopen('file.csv', 'w');
foreach ($list as $fields)
{
echo $fields[1];
fputcsv($fp, $fields, ";");
}
fclose($fp);
?>
|
Meine Idee war, dass ich in der Excel-Datei eine große Tabelle erzeuge mit allen Spalten, die auch die Tabellen in der Datenbank haben.
So sollte es in etwa aussehen, nur mit noch mehr Spalten:
[Formular 3] [Schwerbehindert] [Grad] [Anerkannt] [Antrag] [Formular 4] [Abschluss_erworben] [Datum_erworben] [Durchschnitt_erworben] [Abschluss_anstreben] [Datum_anstreben] [Durchschnitt_anstreben]
...
Diese Lösung wäre aber erstens sehr unübersichtlich und zweitens müsste man eine relativ große SQL-Abfrage schreiben, da man leider nur 1 mysql_fetch_row in einer while Schleife haben kann.
Ich wollte es nun also so machen, dass ich die einzelnen Formulare auf verschiedene Worksheets in Excel aufteile, damit man unten zwischen den Formularen wechseln kann.
Ich habe aber leider keinen Befehl für diese Operation, also zum Wechseln eines Worksheets gefunden, hat jemand vielleicht eine Idee wie ich dies anstellen kann oder vielleicht sogar eine Idee es noch besser darzustellen, da man durch das Aufteilen der einzelnen Formulare natürlich nicht mehr alles im Blick hat.
Ich wäre für jede Hilfe dankbar!
Gruß
Simon