PHP Datenbankabfrage in Tabelle schreiben
Hallo,
mit folgendem Code ziehe ich die Daten aus der Datenbank...
Leider wird mir die Ausgabe nur schlicht untereinander angezeigt...
Ist es möglich die ausgegebenen Daten direkt in eine passende Tabelle zu schreiben?
Vielen Dank für eure Hilfe!
mit folgendem Code ziehe ich die Daten aus der Datenbank...
<?php
$pdo = new PDO('mysql:host=localhost;dbname=Datenbankname', 'user', 'password');
$sql = "SELECT * FROM Tabellenname";
foreach ($pdo->query($sql) as $row) {
echo $row['tel_vorname']." ".$row['tel_nachname']. "<br> " ;
echo "E-Mail: ".$row['tel_email']. "<br>";
echo "Raum: ".$row['tel_raum']. "<br>";
echo "Tel.: ".$row['tel_nr_intern']."<br /><br />";
}
?>
Leider wird mir die Ausgabe nur schlicht untereinander angezeigt...
Ist es möglich die ausgegebenen Daten direkt in eine passende Tabelle zu schreiben?
Vielen Dank für eure Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 385105
Url: https://administrator.de/contentid/385105
Ausgedruckt am: 26.11.2024 um 02:11 Uhr
4 Kommentare
Neuester Kommentar
Moin,
ja, das geht.
Du musst halt mit all den Table-Tags arbeiten:
So dann in etwa:
Nicht schön aber Q&D.
Nachtrag:
Bevor du das ganze Produktiv nimmst, schreibe die einzelnen Werte zunächst erst in eine Variable/ ein Array und validiere die Daten. Wenn da mal etwas in der DB steht, was dort nicht reingehört, z.B. wenn in dem Feld "tel_raum" steht:
Tja, dann ist deine Tabelle leer. Man könnte aber auch ein anderes Select ... from ... ausführen lassen und alle Daten abgreifen..
Setze dich also mal mit SQL-Injection auseinander, welches nicht beim schreiben in eine DB aufhört...
Gruß
em-pie
ja, das geht.
Du musst halt mit all den Table-Tags arbeiten:
<TABLE>
<TR>
<TD>
</TD>
</TR>
</TABLE>
So dann in etwa:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=Datenbankname', 'user', 'password');
$sql = "SELECT * FROM Tabellenname";
echo "<TABLE>";
echo "<TR>";
echo "<TD> Vorname </TD>";
echo "<TD> Nachname </TD>";
echo "<TD> E-Mail </TD>";
echo "<TD> Raum </TD>";
echo "<TD> Telefon </TD>";
echo "</TR>";
foreach ($pdo->query($sql) as $row) {
echo "<TR>";
echo "<TD>".$row['tel_vorname']. "</TD>";
echo "<TD>".$row['tel_nachname']."</TD>";
echo "<TD>".$row['tel_email']. "</TD>";
echo "<TD>".$row['tel_raum']. "</TD>";
echo "<TD>".$row['tel_nr_intern']. "</TD>";
echo "</TR>";
}
echo "</TABLE>";
?>
Nicht schön aber Q&D.
Nachtrag:
Bevor du das ganze Produktiv nimmst, schreibe die einzelnen Werte zunächst erst in eine Variable/ ein Array und validiere die Daten. Wenn da mal etwas in der DB steht, was dort nicht reingehört, z.B. wenn in dem Feld "tel_raum" steht:
query('Delete * from TableName')
Setze dich also mal mit SQL-Injection auseinander, welches nicht beim schreiben in eine DB aufhört...
Gruß
em-pie
Zitat von @newit1:
Leider wird mir die Ausgabe nur schlicht untereinander angezeigt...
Ist es möglich die ausgegebenen Daten direkt in eine passende Tabelle zu schreiben?
Vielen Dank für eure Hilfe!
Leider wird mir die Ausgabe nur schlicht untereinander angezeigt...
Ist es möglich die ausgegebenen Daten direkt in eine passende Tabelle zu schreiben?
Vielen Dank für eure Hilfe!
Ich gehe mal davon aus das dies ein einzelnes PHP-Skript ist und nicht ein Teil einer Funktion oder Klasse. Daher würde sich eine leichter zu lesende Syntax anbieten. Der Voteil hier ist, dass du einfacher evtl. genutztes Javascript in den Kopf der Tabelle packen kannst. jQuery Tablesorter benötigt z.B. die CSS-Klasse "tablesorter" im öffnenden TABLE-Tag. Wenn du alle html-Tags immer nur per PHP ECHO ausgibst, läufst du Gefahr schneller Syntaxfehler im Code zu haben, welche, je nach Komplexität, schwierig zu lesen sind. Auf die Dauer macht das dann keinen Spaß. Wenn dann die "TR's" und "TD's" plötzlich auch noch CSS-Klassen bekommen müssen wird das richtig unübersichtlich. Daher solltest Du dir von Anfang angewöhnen, so wenig wie möglich an html-Tags mit PHP ECHO auszugeben und eine saubere Syntax bevorzugen.
Hier mal eine saubere Syntax mit Kommentaren ;)
<!-- PHP ANFANG -->
<?php
$pdo = new PDO('mysql:host=localhost;dbname=Datenbankname', 'user', 'password');
$sql = "SELECT * FROM Tabellenname";
?>
<!-- PHP ENDET HIER -->
<!-- PURES HTML -->
<table>
<thead>
<tr>
<td>Vorname</td>
<td>Nachname</td>
<td>E-Mail</td>
<td>Raum</td>
<td>Nr. intern</td>
</tr>
</thead>
<tbody>
<!-- PURES HTML ENDE -->
<!-- LOOP MIT PHP UND HTML TAGS PER ECHO -->
<?php foreach ($pdo->query($sql) as $row) : ?>
<tr>
<td><?php echo $row['tel_vorname']; ?></td>
<td><?php echo $row['tel_nachname']; ?></td>
<td><?php echo $row['tel_email']; ?></td>
<td><?php echo $row['tel_raum']; ?></td>
<td><?php echo $row['tel_nr_intern']; ?></td>
</tr>
<?php endforeach; ?>
<!-- ENDE PHP LOOP -->
<!-- PURES HTML -->
</tbody>
</table>
<!-- HTML ENDE -->