Tabelle durchnummerieren

Michael81

Mitglied
Hallo,
ich habe mit php ne dynamische tabelle generiert. jetzt soll aber die spalten 1-56 dirket und unabhängig von dem inhalt der mysql datenbank generiert werden, damit man die nachträglich füllen/löschen etc kann. aber ich komm da nicht vorran.
bei meinen lösungsansatz zählt php immer bis 56 und füllt dann die vorhandenen spalten mit 57 aus. kann mir da einer helfen?

PHP:
<!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=iso-8859-1" />
<title>Datensätze aus einer Datenbank auslesen und ausgeben</title>
</head>

<body>
<?php
	//Error_LOG einschalten
    ini_set('display_errors', 1);
    error_reporting(E_ALL);

    //MYSQL Verbindungsdaten
$db_host = "localhost";
$db_user = "michael";
$db_pass = "michael";
$db_name = "db_user1";

// 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 `vorname`, `nachname`, `arbeitsplatz`, `buchnummer`, `geb`, IF(`sm`=0, 'Nein', 'Ja') as sm FROM `spiegel`";
// Anfrage an die DB schicken und die Rueckmeldung in eine Variable ablegen
   $abfrageergebnis = mysql_query( $sql, $conID );
// Ermitteln wie viele Datensaetzen gefunden wurden
   $anzahl = mysql_num_rows( $abfrageergebnis );
   echo "<p>Es sind  <strong>" .$anzahl. "</strong> gfg auf der Abteilung!</p>";

$x = 0;

do   {     /* tue ... */
     echo $x . "<br />\n";     /* ... diese Ausgabe ... */
     $x = $x + 1;
     }
     while($x > 0 and $x <= 10);     /* ... solange wie das hier (stimmt) */

// Tabelle erstellen fuer die Ausgabe
   echo '<table border="1">';
   echo "<tr><th>HR</th><th>Vorname</th><th>Nachname</th><th>Arbeitsplatz</th><th>Buchnummer</th><th>Geb</th><th>SM<th>Ändern</th></tr>";

// Ab hier werden die Datensaetze zeilenweise ausgeben (auch fetchen genannt)
   while ($datensatz = mysql_fetch_array( $abfrageergebnis ))
{	
// Jeder Datensatz entspricht einer Tabellenzeile
    echo "<tr>";
    echo "<td>" .$x."</td>";
   	echo "<td>" .htmlspecialchars( $datensatz['vorname'] ). "</td>";
	echo "<td>" .htmlspecialchars( $datensatz['nachname'] ). "</td>";
	echo "<td>" .htmlspecialchars( $datensatz['arbeitsplatz'] ). "</td>";
	echo "<td>" .htmlspecialchars( $datensatz['buchnummer'] ). "</td>";
	echo "<td>" .htmlspecialchars( $datensatz['geb'] ). "</td>";
	echo "<td>" .$datensatz['sm']. "</td>";
	echo "</tr>";
}
// Tabelle schliessen
echo "</table>";

?>
</body>
</html>
 
Unabhängig von deinem Code:

PHP:
$result = mysql_query('query...');
$i = 0;
while($row = mysql_fetch_assoc($result)){
    echo '<tr><td>'.++$i.'</td><td>'.$row['colN'].'</td></tr>';
}

Hoff das hilft.

Gruß
Dennis
 
Ich habe das nicht ausprobiert, aber wenn ich mich nicht irre zälht das doch nur die einträge aus der db. Aber ich will ja unabhängig davon, wieviele einträge existieren immer die Spalten 1-56 angezeigt bekommen
 
Irgendwie versteh ich nicht wirklich wie du das meinst.

In der SQL-Abfrage werden 6 Werte ermittelt. Du schreibst aber das du die SPALTEN () 1 - 56 unabhängig erzeugen willst. Das würde ja bedeuten das die Tabelle 62 Spalten hat. Glaub ich nicht wirklich das es so viele sind.

Schreib doch mal ein bisschen mehr was du machen willst bzw. was alles in den festen Spalten oder Zeilen ausgegeben wird.

Gruß Thomas
 
Ich will eine Tabelle mit 54 Zeilen. Egal ob in der Datenbank 1 oder 54 Einträge sind.
Die Tabelle und den inhalt habe ich ja angefangen steh ja oben. Aber mein prob ist halt, das ja immer nur soviele Spalten angezeigt werden und nummeriert wie in mysql vorhanden ist. also bei 16 einträgen sind 16 spalten da. Aber so wie ich es brauche würden jetzt auch wenn nur 16 einträe vorhanden sind, 54 Spalten mir nummerierung angezeigt werden.

Die vorhandenen Einträge sollen dann in der Spalte rein wo man sie drin eingetragen hat. Via Schaltfläche "einfügen" ,"änder","löschen"
die sind aber noch nicht vorhanden. die mach ich mal wenn ich soweit fertig bin.
 
Zuletzt bearbeitet:
meinst du so?

PHP:
$result = mysql_query('query...');

for ($i=1;$i<55;++$i) {
  if ($row = mysql_fetch_assoc($result)){
    echo '<tr><td>'.$i.'</td><td>'.$row['colN'].'</td></tr>';
  } else {
     echo '<tr><td>'.$i.'</td><td>&nbsp;</td></tr>';
  }
}
 
Hi,

Ich will eine Tabelle mit 54 Zeilen. Egal ob in der Datenbank 1 oder 54 Einträge sind.
Die Tabelle und den inhalt habe ich ja angefangen steh ja oben. Aber mein prob ist halt, das ja immer nur soviele Spalten angezeigt werden und nummeriert wie in mysql vorhanden ist. also bei 16 einträgen sind 16 spalten da. Aber so wie ich es brauche würden jetzt auch wenn nur 16 einträe vorhanden sind, 54 Spalten mir nummerierung angezeigt werden.

Du meinst die ganze Zeit Zeilen, deshalb hat das niemand verstanden. Nur so als Tipp für's nächste Mal... ;)

LG
 
Hm, dank des Tipps von oben habe ich jetzt zwar die nummerierung hinbekommen. Aber ein mir bis heute unbekanntes Phenomän ist aufgetaucht. Um so voller die DB ist um so weiter rückt die Liste weiter nach unten. Bei 25 Einträgen muss man erstmal nach unten scrollen bis man den ersten Eintrag sieht.
Kennt das einer?
 
nein bestimmt nicht ;)

kann man sich dein Werk mal ansehn?
oder kannst du mal den aktuellen Code von dir Posten

denn es kann hunderte von gründen für solche Fehler geben

der erste der mit einfällt ist das du eine Spalte nicht richtig geschlossen hast
dann wird nämlich ihr Inhalt über der Tabelle angezeigt und wenn das zufällig ein ist <br /> erklärt das dein Problem
 
Zurück