Download von Daten aus mysql-Datenbank in ein word-Dokument in php
Ich versuche, laden Sie die gespeicherten Daten in der mysql-Datenbank in ein word-Dokument mit php.
Den code habe ich in der minute gemeint ist die Arbeit wie folgt
Anzeige aller Daten in der student-Tabelle der Datenbank
Klicken Sie auf die Schaltfläche download, die downloads, diese Daten auf einem Microsoft word-Dokument.
Jedoch, es ist nur Druck auf die Aufzeichnung der student-Tabelle und wenn Sie versuchen, das Dokument zu öffnen, es sagt, dass der Inhalt beschädigt ist (bei der Verwendung von google chrome, es öffnet sich fein in firefox).
Jede Hilfe wäre sehr geschätzt werden. (siehe code unten)
<?php
include("dbConnect.php");
$dbQuery = $db->prepare("select * from student");
$dbQuery->execute();
while ($dbRow = $dbQuery->fetch(PDO::FETCH_ASSOC)) {
$ID = $dbRow['ID'];
$Forename = $dbRow['Forename'];
$Surname = $dbRow['Surname'];
$Email = $dbRow['Email'];
$B_number = $dbRow['B_number'];
$School = $dbRow['School'];
$Campus = $dbRow['Campus'];
$Research_Institute = $dbRow['Research_Institute'];
$FTPT = $dbRow['FTPT'];
}
$doc_body = "<h1>Students</h1>";
?>
<head>
<title>Students</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://dunluce.infc.ulst.ac.uk/cw11ba/project/Project/mycss.css">
</head>
<form name="export_form" action="<?php
echo ($_SERVER['PHP_SELF']);
?>" method="post">
<input type="submit" name="submit_docs" value="Export as MS Word" class="input-button" /> <a href="https://dunluce.infc.ulst.ac.uk/cw11ba/project/Project/admin.php"><button type="button" class= "btn btn-block">Go back to Admin Area</button></a>
</form>
<?php
if (isset($_POST['submit_docs'])) {
header("Content-Type:application/msword");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("content-disposition: attachment;filename=test.docx");
}
echo "<html>";
echo "$doc_body";
echo "<table class=table table-striped table id=student>
<tr>
<th>ID</th><th>Forename</th><th>Surname</th><th>Email</th><th>B Number</th><th>School</th><th>Campus</th><th>Research Institute</th><th>FT/PT</th>
</tr>
<tr><td>$ID</td><td>$Forename</td><td>$Surname</td> <td>$Email</td><td>$B_number</td><td>$School</td><td>$Campus</td><td>$Research_Institute</td><td>$FTPT</td>
</tr>;
</table>";
echo "</html>";
?>
Sie bekommen eine Fehlermeldung, dass der Header bereits gesendet wurden? Etwaige Fehler überhaupt?
nicht immer alle Fehler auf die minute, es ist nur die Anzeige eines Datensatzes innerhalb der Tabelle der Datenbank, statt alle von Ihnen. dann beim Klick auf download die Datei heruntergeladen aber wenn ich versuche, es zu öffnen, es sagt: 'die Datei test-doc" kann nicht geöffnet werden, weil es Probleme mit dem Inhalt' 🙁
Ich fügte hinzu, die vollständige änderung unten. Probieren Sie es aus und lassen Sie mich wissen!
nicht immer alle Fehler auf die minute, es ist nur die Anzeige eines Datensatzes innerhalb der Tabelle der Datenbank, statt alle von Ihnen. dann beim Klick auf download die Datei heruntergeladen aber wenn ich versuche, es zu öffnen, es sagt: 'die Datei test-doc" kann nicht geöffnet werden, weil es Probleme mit dem Inhalt' 🙁
Ich fügte hinzu, die vollständige änderung unten. Probieren Sie es aus und lassen Sie mich wissen!
InformationsquelleAutor AnnaB2015 | 2015-03-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den code in der while-Schleife überschreibt die vorherigen Werte, damit Sie am Ende mit den Werten der letzten Eintragung in
$ID
,$Forename
, ... . Sie benötigen zur Erzeugung der Ausgabe in der while-Schleife. Darüber hinaus müssen Sie sicherstellen, dass Sie nicht senden Sie Ihre website-Inhalte, die beim generieren der word-Inhalte.Versuchen, eine Struktur wie diese:
Habe ich nicht getestet, aber so etwas wie dies funktionieren sollte.
InformationsquelleAutor x-ray
Ich ändern würde mein Header so aus: (NICHT GETESTET, aber sollte funktionieren)
Sowie fügen Sie diese Zeile direkt zwischen
<html>
tag und$doc_body
:Sollten Sie auf einer älteren version, die wird zu mehr Browsern kompatibel ist, es wird einfach die Datei aktualisieren, wenn nötig. Hoffe, das hilft!
Vollständigen code geändert:
Diese Weise sind Sie entkommen weiße Fläche, sowie die Ausgabe der php-Variablen und nicht riskieren, dass Sie interpretted ad text.
SCHLEIFE DURCH DIE ERGEBNISSE UND AUSGABE SIE ALLE IN DER WORD-DATEI:
Entfernen Sie die while-Schleife von der Spitze des Dokuments und ersetzen Sie diese Zeile:
mit dabei:
Funktioniert wie ein Charme 🙂
Nop, aktualisieren Sie Ihre Seite, obwohl... fehlt ein Semikolon am letzten version. Sie stellen alle diese in eine variable, und dann sind Sie damit die gesamte variable. Das ist das, was die .= steht für, es ist das hinzufügen auf die variable $pri und dann Bearbeiten Sie es heraus 🙂
Dank sehr viel, es ist nun den Download erfolgreich zu microsoft word, jedoch ist es immer noch nur die Anzeige von einem Datensatz in der Tabelle innerhalb der Datenbank, alle Anregungen auf, wie echo alle Datensätze in der Tabelle, so dass es heruntergeladen werden kann?
Ja werde ich oben einfügen. Wenn dies funktioniert, könnte Sie plus eine meine Antwort und Haken? Danke!!
natürlich werde ich, vielen Dank für deine Hilfe, ich verbrachte Alter! sehr geschätzt 🙂
InformationsquelleAutor lov2code