MySQL-Daten in Tab anzeigen & als PDF/XLS anbieten

Hallo Leute,

ich stehe vor folgendem Problem:
Ich habe aus einer MySQL-Datenbank mithilfe von drei verschachtelten
Select-Statements und PHP, Daten in eine HTML-Tabelle gebracht.

Ich möchte, dass der Benutzer zusätzlich die Möglichkeit hat,
die Tabelle im PDF bzw. XLS(Excel) Format herunterladen kann.

Version A:
Ist es möglich bzw. sinnvoll, die Daten beim Aufruf der normalen Tabelle zusätzlich in einer XML-Datei abzuspeichern, auf die ich dann mit dem XLS- bzw. PDF-Generierungsscript (PHP) zugreife?

Version B:
Oder wäre es sinnvoller die kompletten select-Statements zu kopieren und erneut drei Zugriffe auf die Datenbank abzusetzen (wirkt sich auf Geschwindigkeit aus…)???

Was meint ihr?
Vielen Dank im Voraus!

Mit freundlichen Grüßen
B.

Hallo Leute,

Hallo,

ich stehe vor folgendem Problem:
Ich habe aus einer MySQL-Datenbank mithilfe von drei
verschachtelten
Select-Statements und PHP, Daten in eine HTML-Tabelle
gebracht.

Ich möchte, dass der Benutzer zusätzlich die Möglichkeit hat,
die Tabelle im PDF bzw. XLS(Excel) Format herunterladen kann.

Version A:
Ist es möglich bzw. sinnvoll, die Daten beim Aufruf der
normalen Tabelle zusätzlich in einer XML-Datei abzuspeichern,
auf die ich dann mit dem XLS- bzw. PDF-Generierungsscript
(PHP) zugreife?

wenn du keinen xml export machen willst warum dann erst nach xml umwandeln?

Version B:
Oder wäre es sinnvoller die kompletten select-Statements zu
kopieren und erneut drei Zugriffe auf die Datenbank abzusetzen

Nein wäre nicht Sinnvoll. Eine Abfrage Reicht.

(wirkt sich auf Geschwindigkeit aus…)???

Ja 3 Abfragen dauern länger als Eine :wink:

Was meint ihr?

Solange du nur eine Tabelle hast die du nach Excel ziehen willst kannst du die den Html Export ganz einfach als Datei.xls Speichern und da einfach nur den Excel header vorklatschen A. Keine Saubere Lösung aber klappt eigentlich ganz gut.

Andere Idee Wäre als CSV speichern. von einer CSV kriegt man die Daten in sogut wie jedes Format.

Für pdf Dokumente gibt es Html to PDF Converter. Einfach mal Googlen :wink:

Vielen Dank im Voraus!

Bitte

Mit freundlichen Grüßen
B.

Gruß
Phillip

Ich glaube Du hast mein Problem nicht richtig verstanden.

Ich weiß wie man PDFs, XLSs, XMLs mit PHP generiert.
Wenn ich eine XML Datei im Hintergrund generiert habe,
kann ich aus dieser schneller eine PDF/XLS erzeugen
als zusätzlich jeweils drei Abfragen zu starten.

Mein Gedanke ist allerdings, ob es sinnvoll ist,
auch wenn der User keine PDF/XLS runterladen will,
eine XML Datei zu erstellen, oder besser auf den „Klick“
zu warten der bei „Diese Liste als PDF herunterladen“ kommt
und dann erneut auf die Datenbank abzufragen.

Da XML ja als Datenaustauschformat gilt, halte ich es eigentlich für sinnvoll…
Jedoch belastet die XML Datei den Speicher des Webservers.
Erneute Abfragen den Datenbankserver.
Es handelt sich um eine relativ große Menge an Daten was mich ein bisschen vom erneuten Zugriff abhält…

Temporär (wie bei AJAX) geht es nicht,
da das Script auf die temporäre XML Datei nach dem Durchlauf logischerweise nicht mehr zugreifen kann.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Leute,

ich stehe vor folgendem Problem:
Ich habe aus einer MySQL-Datenbank mithilfe von drei
verschachtelten
Select-Statements und PHP, Daten in eine HTML-Tabelle
gebracht.

Ich möchte, dass der Benutzer zusätzlich die Möglichkeit hat,
die Tabelle im PDF bzw. XLS(Excel) Format herunterladen kann.

Version A:
Ist es möglich bzw. sinnvoll, die Daten beim Aufruf der
normalen Tabelle zusätzlich in einer XML-Datei abzuspeichern,
auf die ich dann mit dem XLS- bzw. PDF-Generierungsscript
(PHP) zugreife?

Klar möglich ist es. PHP kann dateienschreiben und textdateien/XML zu schreiben ist keine grosse sachen, hängt natürlich etwas von der komplexität der daten ab.

Version B:
Oder wäre es sinnvoller die kompletten select-Statements zu
kopieren und erneut drei Zugriffe auf die Datenbank abzusetzen
(wirkt sich auf Geschwindigkeit aus…)???

ich denke das ist der übliche trade of den man überlegen muss Rechenzeit gegen Speicher.
im fall der erneuten SQL abfrage für dein exporte hast du halt etwas mehr rechenzeit. dafür sprachst du speicherplatz da du kein „dokumenten“ cache vorhalten must. (und du sparts programmier aufwand weil du den cache nicht verwalten must.)
dann kannst du deine gecacheten daten wieder verwenden? oder ist warscheinlich das sie bei der nächsten abfrage veraltet sind.

jetzt ist die frage letze frage, wie viel rechenzeit macht denn so eine abfrage. und wieviele abfragen pro sekunde erwartest du später im live betrieb?

SQL server sind Eigendlich ziemlich flott dabei Daten rauszugeben (dafür sind sie schließlich entwickelt worden) deswegen denke ich so ein Festplatten Cache, wird sich nur rentieren wenn du hohe last auf den Datenbank Server erwartest. oder du denkst das daten im cache lange zeit aktuell bleiben. werden. und du dann effektiv auch die generierung neuer PDF’s und Exel daten einsparst. weil sie für 90% der abfragen schon fix und fertig bereit liegen währe es sicher gut so einen cache zu haben.

gruss chris

Was meint ihr?
Vielen Dank im Voraus!

Mit freundlichen Grüßen
B.

Ich glaube Du hast mein Problem nicht richtig verstanden.

ok scheint mir auch so hab wohl zu schnell gelesen :wink:

Ich weiß wie man PDFs, XLSs, XMLs mit PHP generiert.
Wenn ich eine XML Datei im Hintergrund generiert habe,
kann ich aus dieser schneller eine PDF/XLS erzeugen
als zusätzlich jeweils drei Abfragen zu starten.

Mein Gedanke ist allerdings, ob es sinnvoll ist,
auch wenn der User keine PDF/XLS runterladen will,
eine XML Datei zu erstellen, oder besser auf den „Klick“
zu warten der bei „Diese Liste als PDF herunterladen“ kommt
und dann erneut auf die Datenbank abzufragen.

Das kommt dann drauf an wie lange deine Abfrage braucht.
Wenn deine Datenbankanfrage länger Dauert als SQL->XML-&gt:stuck_out_tongue_winking_eye:DF/XLS dann würde ich die Exportdaten Cachen und nach einem Gewissen Dateialter die Datei Automatisch Löschen

Da XML ja als Datenaustauschformat gilt, halte ich es
eigentlich für sinnvoll…

Über XML lässt sich Streiten, aber das ist nen anderes Thema :wink:

Naja wie gesagt ist eigentlich ne Ziemlich einfache Rechnung :wink:
was dauert länger, die Datenbankabfrage 2x machen oder den Export ablegen und per script nach x Min/stunden löschen.

Gruß
Phillip

Alles klar!
Denke ich werde es mit zusätzlichen DB-Abfragen realisieren!

Vielen Dank für eure kompetenten Antworten Philipp und Christian!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo!

Habe das Problem jetzt folgendermaßen gelöst:

Die XLS bzw. PDF wird mit direktem Zugriff auf die Datenbank generiert.
eine XMS-Datei habe ich für eine Suchfunktion verwendet.

Vielen Dank nochmal für Eure Tipps,

B.