HILFE! mysql_fetch in einer festen Tabelle?
inspiron
- https
Hallo,
ich möchte gern Daten aus einer Mysql DB in eine Tabelle einlesen.
Diese sollte folgendermaßen aussehen:
Im Header die Kopfdaten
##############################
#ID # Datum # Uhrzeit #
##############################
#----------------------------#
#----------------------------#
.
.
.
#----------------------------#
#12 24.07.2009 07:22 #
##############################
# footer #
##############################
Es sollen nur im Bodybereich der Tabelle die Daten eingetragen werden und die Tabelle sollte eine feste Größe haben. (Header & Footer sollen am oberen und unteren Bildschirmrand enden)
Leider bekomme ich das nur mit einem Eintrag hin. Die restlichen werden immer unterhalb der Tabellee angefügt.
Hat jemand eine Idee was ich falsch mache?!
Gruß
<?php
//******************************************************************************
// Übersicht
//******************************************************************************
// Datenbankzugriff
include("includes/config.php");
// BLAETTERFUNKTION
// Wenn keine Seite angegeben ist Seite = 1
if (!isset($seite)) {
$seite = 1;
}
// Startdatensatz feststellen
$start = $seite * $eintrage_per_seite - $eintrage_per_seite;
// Seitenkopf einfuegen
include($header_path);
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=latin1" />
<title>Übersicht Fehlerbericht</title>
<link href="./style.css" rel="stylesheet" type="text/css">
</head>
<body style="margin:0;padding:0">
<table style="border-style:solid; border-color:red;" width="100%">
<tr>
<th height="30" width="10%">ID</th>
<th height="30" width="10%">Datum</th>
<th height="30" width="20%">Uhrzeit</th>
<th height="30" width="30%">Sendung</th>
<th height="30" width="30%">Auswirkung</th>
</tr>
<tr>
<td width=100% height=100px colspan=5>
<table bgcolor=yellow border=1 width=100% height=100%>
<?php
// Verbindung oeffnen und Datenbank ausweahlen
$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
if ($conID)
{
mysql_select_db( $db_name, $conID );
}
// Anfrage zusammenstellen um die Datensaetze auszulesen
$sql = "SELECT `ID`, `DATUM`, `SCHICHT`, `ORT`, `M_NAME`, `SENDUNG`, `UHRZEIT`, `FEHLERKATEGORIE`, `KURZBESCHREIBUNG`, `GEMELDET`, `S_NAME`, `MASSNAHME`, `ANMERKUNG` FROM `FW_Fehlerbericht`";
// Anfrage an die DB schicken und die Rueckmeldung in eine Variable ablegen
$abfrageergebnis = mysql_query( $sql, $conID );
// Ermitteln wie viele Datensaetze gefunden wurden
$anzahl = mysql_num_rows( $abfrageergebnis );
echo "<p>Es wurden <strong>" .$anzahl. "</strong> Datensätze gefunden!</p>";
// Ab hier werden die Datensaetze zeilenweise ausgegeben (auch fetchen genannt)
while ($datensatz = mysql_fetch_array( $abfrageergebnis ))
{
// Uebernahme der Datensaetze
// Jeder Datensatz entspricht einer Tabellenzeile
$ID = $datensatz['ID'];
$DATUM = date("d.m.Y",$datensatz['DATUM']);
$UHRZEIT = $datensatz['UHRZEIT'];
$SENDUNG = $datensatz['SENDUNG'];
$KURZBESCHREIBUNG = $datensatz['KURZBESCHREIBUNG'];
// Tabelle erstellen fuer die Ausgabe
?>
<table style="background-color:#efefef;" border-style="outset" border="1" rules="groups" width="100%">
<tr>
<td style="border-top: 1px dotted #00447C" width="10%" align="left" valign="top"><?=$ID?></td>
<td style="border-top: 1px dotted #00447C" width="10%" align="left" valign="top"><?=$DATUM?></td>
<td style="border-top: 1px dotted #00447C" width="20%" align="left" valign="top"><?=$UHRZEIT?></td>
<td style="border-top: 1px dotted #00447C" width="30%" align="left" valign="top"><?=$SENDUNG?></td>
<td style="border-top: 1px dotted #00447C" width="30%" align="left" valign="top"><?=$KURZBESCHREIBUNG?></td>
</tr>
</table>
</tr>
</tr>
</td>
</tbody>
</table>
</table>
<?php
} //Ende While
//include($footer_path);
?>
</body>
</html>
Mahlzeit inspiron,
erstmal sei die Frage gestattet, was Dein Problem bzw. Deine Fragestellung mit HTTP zu hat?
Diese sollte folgendermaßen aussehen:
Im Header die Kopfdaten
##############################
#ID # Datum # Uhrzeit #
##############################1 12.07.2009 12:32 #
#----------------------------#
2 20.07.2009 13:20 #
#----------------------------#
.
.
.
#----------------------------#
#12 24.07.2009 07:22 #
##############################
# footer #
##############################
Warum gestaltest Du Deine Tabelle dann nicht auch entsprechend? Nicht ohne Grund kennt HTML <http://de.selfhtml.org/selfhtml/html/tabellen/aufbau.htm#kopf_koerper_fuss@title=entsprechende Elemente für Kopf, Fuß und "Körper"> (ein- oder mehrfach).
die Tabelle sollte eine feste Größe haben. (Header & Footer sollen am oberen und unteren Bildschirmrand enden)
Und wenn der Inhalt der Tabelle länger ist? Soll dann innerhalb des <tbody> gescrollt werden? Evtl. wäre das <http://de.selfhtml.org/css/eigenschaften/positionierung.htm#overflow@title=mittels CSS> hinzubekommen.
Leider bekomme ich das nur mit einem Eintrag hin. Die restlichen werden immer unterhalb der Tabellee angefügt.
Hat jemand eine Idee was ich falsch mache?!
Na sicher - ich darf doch den überflüssigen Quellcode entfernen (das wäre eigentlich Dein Job gewesen)?
<table style="border-style:solid; border-color:red;" width="100%">
<tr>
<th height="30" width="10%">ID</th>
<th height="30" width="10%">Datum</th>
<th height="30" width="20%">Uhrzeit</th>
<th height="30" width="30%">Sendung</th>
<th height="30" width="30%">Auswirkung</th>
</tr>
<tr>
<td width=100% height=100px colspan=5>
<table bgcolor=yellow border=1 width=100% height=100%>
1. Was soll eine Tabelle in der Tabelle?
2. Die nächste Ausgabe des PHP-Skripts ist offenbar ...
echo "<p>Es wurden <strong>" .$anzahl. "</strong> Datensätze gefunden!</p>";
... ein Absatz. Tabellen dürfen aber nur <http://de.selfhtml.org/selfhtml/html/referenz/elemente.htm#table@title=bestimmte Kindelemente> haben. Behebe diesen Fehler!
<table style="background-color:#efefef;" border-style="outset" border="1" rules="groups" width="100%">
Und hier fängst Du nach dem Absatz nochmal wieder eine neue Tabelle an - direkt in der übergeordneten Tabelle ...
3. Wieso?
4. Eine Tabelle direkt in einer Tabelle ist nicht erlaubt (s.o.)?
Sorge dafür, dass Dein PHP-Skript sauberen, validen HTML-Code erzeugt und die Tabelle(n) sollte(n) auch korrekt dargestellt werden.
MfG,
EKKi
Hallo,
danke nochmal ich habe es nun hinbekommen.
Nun ist es mit der Tabelle auch logisch.
Manchmal ist es schon komisch was für Wege die Hirnzellen gehen.
Nun trotzdem nochmal die Frage:
Warum ist Tabelle in Tabelle "verboten"?
Ich habe es auf einer anderen Seite gemacht und es funktioniert sehr gut!
Gruß
Hi,
Nun trotzdem nochmal die Frage:
Warum ist Tabelle in Tabelle "verboten"?
weil's die Spezifikation von HTML so festlegt.
Eine Tabelle hat immer einen festen Bauplan. Sie besteht aus Zeilen und die wiederum aus einzelnen Zellen. Innerhalb einer Zelle darf dann wieder fast alles stehen - auch eine weitere Tabelle. Optional kann die Tabelle noch in thead, tbody und tfoot unterteilt werden, bevor die Gliederung in Zeilen erfolgt.
So long,
Martin