mysql - php auslesen - tabellen?

Maiky

Grünschnabel
Hallo zusammen.

Ich habe mir einige Tutorials hier zum Thema mySQL - php angesehen und auch selber ausprobiert. Danach habe ich auch in dem Forum keinen passenden Eintrag bezüglich Auslesung in Tabellen gefunden. In komplexen Scripten kommt das zum Teil raus, ist aber noch Stufen zu hoch für mich. Daher hier mal die Frage, wie ich die Ergebnisse der Datenbankabfrage in eine Tabelle bekomme.

Stand der Dinge:

Datenbank:

1)mueller/thomas/aachen
2)schmitz/heribert/köln

Auslesen:

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "SELECT * from $tabelle ";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

while ($ausgabe = mysql_fetch_array ($result))
{


print ("$ausgabe[nname] &nbsp; $ausgabe[vname]&nbsp; $ausgabe[ort]<br><hr><br>");
}

Durch dieses Auslesen erhalte ich die beiden Datensätze mit Leerzeichen getrennt und durch br und hr durch eine linie getrennt untereinander. Also richtig schön einfach, wie in versch. Tutorials hier erklärt.

Aber was muss ich nu machen, wenn ich die einzelnen Datenfelder in eine Tabelle haben möchte. Schliesslich ist die Ausgabe in einer Tabelle wesentlich ansehnlicher, weil alles schön untereinander steht, egal, ob der einer Herrmann und der andere Tim heisst.

Bin auf Eure Antworten gespannt und sag schon mal Danke.

Gruss Maiky
 
die while schleife bleibt natürlich die selbe, du musst vor deiner while schleife die tabelle mit <table> 'eröffnen'.

die ausgabe wäre dann
PHP:
<tr>
 <td>$ausgabe[nname]</td>
 <td>$ausgabe[vname]</td>
 <td>$ausgabe[ort]</td>
</tr>

so wird bei jeder neuen zeile in deiner datenbank-tabelle auch eine neue zeile in deiner html tabelle erzeug.


nach der while schleife musst du die tabelle mit </table> wieder schliessen.
 
ausprobiert:

$dbanfrage = "SELECT * from $tabelle ";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

<table>

while ($ausgabe = mysql_fetch_array ($result))
{
print
<tr>
<td>$ausgabe[nname]</td>
<td>$ausgabe[vname]</td>
<td>$ausgabe[ort]</td>
</tr>
}

</table>

Fehlermeldung:
Parse error: parse error, unexpected '<' in d:\wampp13cs\htdocs\maik\liste3.php on line 42

das ist die Zeile, wo ich die Tabelle mit <table> eröffne.

Hab ich was falsch verstanden?
 
echo "<table>";

while ($ausgabe = mysql_fetch_array ($result))
{
print("<tr><td width=200>$ausgabe[nname]</td><td>$ausgabe[vname]</td><td>$ausgabe[ort]</td></tr>");
}

echo "</table>";

jetzt gehts. Danke Dir!!!
 
generelle frage

Hab da mal im Anschluss noch ne generelle Frage. Am Besten wieder mit einem Beispiel klargemacht:

1 müller thomas köln
2 schmitz günni aachen

Ich lasse nname, vname aus der Datenbank auslesen. Diese erscheinen in einer Tabelle (das geht ja jetzt :-) ). Der Nachname ist gleichzeitig ein Link. Dieser Link is dynamisch der entsprechenden id zugeordnet. Dh Müller hat einen Hyperlink hintersich, der zu 1.php führt. Weil 1 die id von Müller is. Klar oder?
print("<tr><td><a href=$ausgabe[id].php>$ausgabe[nname]...usw

Jetzt möchte ich gerne, das in 1.php per auslesung alle Daten kommen evtl mit Foto usw.

Jetzt kommt die Frage: Ist es überhaupt möglich, dass bei einem neuen Datensatz, zB der 4te, gleichzeitig eine 4.php erstellt wird, die dann genauso aussieht wie die 1.php nur mit den Inhalten, die den 4ten Datensatz auslesen?
Anders ausgedrückt: Ich erstelle eine 1.php, die den Datensatz 1 ausliest. Eine 2.php, die den Datensatz 2 ausliest usw bis zB 100.
Dann lade ich alle 100 php-Dateien hoch auf den Server. Müsste gehen. Nur, lege ich den 101ten Datensatz an, liest der alles aus in der Tabelle, aber es fehlt ja die 101.php , die ich verlinkt habe. File not found würde es dann heissen.

Würde mich freuen, wenn Ihr dazu Eure Kommentare schreiben würdet.
Vielleicht is das auch alles zu kompliziert.

Gruss Maiky
 
:-)

NEIN um Gottes willen, mach ja keine 100 PHP Dateien .. da genuegt 1(!) Datei ... in der Du die Datenbank abfrage hast etc ... das Design bleibt doch immer gleich, oder hab ich das falsch verstanden?..

und an stelle von <a href=$ausgabe[id].php>$ausgabe[nname]...* machst Du dann einfach

<a href=display.php?show=$id... ....

und in der datei 'display.php'

PHP:
$query = mysql_query("SELECT * from tabelle WHERE id ='$_GET[id]'");
$result = mysql_fetch_array($query) {
deine ausgabe etc hier..

}

und fertig.



:-)
 
Was Du mir damit sagen willst verstehe ich sogar. ;-)

Also eine display.php die dann den Zusatz in der url oben enthällt, welche [id] er nehmen soll. Und nur diesen soll er anzeigen.

Aber ich bekomme folgende Fehlermeldung:

Notice: Undefined variable: ausgabe in d:\wampp13cs\htdocs\maik\display.php on line 16



line 16 in der display:

$dbanfrage = "SELECT * from table1 WHERE id ='$_GET[id]' ";

???
 
ahso.. ja das liegt daran das ich es schon mit $_GET[] geschrieben hatte... versuchs mal so.

"SELECT * FROM table1 WHERE id ='$id'"
 
nope

selber Fehler :-(


wenn ich die Variable raus nehme, und zB '2' eingebe, bekomm ich auch den 2ten Datensatz. Also die Funktion stimmt. Nur "noch" die Varialbe aus der url nehmen.

Bitte nächster Versuch ;-)
 
Zuletzt bearbeitet:
Zurück