Seite 1 von 2

Lfd.-Nr. in php

Verfasst: 18.07.2011 20:45
von seemann1965
Hallo,
ich versuche mich schon einige Tage mit einer zusätzlichen php-Seite,
leider bekomme ich es nicht hin eine laufende Nummer vor die Beiträge zu bekommen.
Habe es zwar mit "id" versucht, aber hier ist das Problem,
dass die Nummern fest mit den Datensätzen verbunden sind und nach dem Löschen fehlen.
Wie kann man es lösen?
<?php
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "kamfind";

$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 );
}

$sql = "SELECT `vorname`, `id`, `name`, `wohnort`, `email`, `von`, `bis`, `dienstgrad`, `dienststellung`, `einheit`, `nummer` FROM `kss1159` ORDER BY `id` DESC";
$abfrageergebnis = mysql_query( $sql, $conID );
$anzahl = mysql_num_rows( $abfrageergebnis );
echo "<br><hr align=center width=50% noshade color=#ff0000>";
echo "<p align=center><a href=kfkss1159eintra.php><font face=verdana size=5>In die Liste eintragen...</font></a></p>";
echo "<hr align=center width=50% noshade color=#ff0000><br>";
echo "<br><hr align=center width=63% noshade color=#000040>";
echo '<table border=0 cellspacing=0 align=center>';
while ($datensatz = mysql_fetch_array( $abfrageergebnis ))
{

echo "<tr><td><table border=0 cellspacing=0><tr>";
echo "<td><font face=verdana size=4>" .htmlspecialchars( $datensatz['id'] ). ").</font></td>"; <--- hier sollte die Lfd.-Nr hin
echo "<td><font face=verdana size=5><b>" .htmlspecialchars( $datensatz['vorname'] ). "</b></font></td>";
echo "<td><font face=verdana size=5><b>&nbsp;" .htmlspecialchars( $datensatz['name'] ). "</b></font></td>";
echo "<td><font face=verdana size=5>&nbsp;aus " .htmlspecialchars( $datensatz['wohnort'] ). "</font></td></tr></table></td></tr>";
echo "<tr>";
echo "<td><a href=mailto:" .htmlspecialchars( $datensatz['email'] ). "><img src=images/meldeemail.gif border=0></a><br></td></tr>";
echo "<tr>";
echo "<td>-----------------------------------------------" . "</a><br></td></tr>";
echo "<tr><td><table border=0 cellspacing=0><tr>";
echo "<td><font size=3 color=#000040 face=verdana>" .htmlspecialchars( $datensatz['von'] ). "</font></td>";
echo "<td><font size=3 color=#000040 face=verdana>&nbsp;- " .htmlspecialchars( $datensatz['bis'] ). "</font></td></tr></table></td></tr>";
echo "<tr>";
echo "<td><font size=3 color=#000040 face=verdana>" .htmlspecialchars( $datensatz['dienstgrad'] ). "</font></td></tr>";
echo "<tr>";
echo "<td><font size=3 color=#000040 face=verdana>" .htmlspecialchars( $datensatz['dienststellung'] ). "</font></td></tr>";
echo "<tr><td><table border=0 cellspacing=0><tr>";
echo "<td><font size=3 color=#000040 face=verdana>" .htmlspecialchars( $datensatz['einheit'] ). "</font></td>";
echo "<td><font size=3 color=#000040 face=verdana>" .htmlspecialchars( $datensatz['nummer'] ). "</font></td></tr></table></td></tr>";
echo "<tr>";
echo "<td><font size=3 color=#000040 face=verdana>Projekt 1159 (Koni-class)" . "</font></td></tr>";
echo "<tr>";
echo "<td><hr align=center width=100% noshade color=#000040>" . "</td>";
echo "</tr>";
}

echo "</table>";
echo "<br><font face=verdana size=3><p align=center>Es sind <strong>" .$anzahl. "</strong> Kameraden eingetragen!</p></font>";
?>
Gruß seemann

Re: Lfd.-Nr. in php

Verfasst: 19.07.2011 13:12
von BNa
Du musst schon beim einfügen in die Tabelle einen index mit auto_increment erzeugen, dann bleiben die Nummern fortlaufend.
Beim abfragen selbst kann man da nichts machen

Re: Lfd.-Nr. in php

Verfasst: 19.07.2011 13:58
von posaunen
ändern bzw. ergänzen, da wo Deine while Schleife anfängt:

Code: Alles auswählen

$lfdNr=0;
while ($datensatz = mysql_fetch_array( $abfrageergebnis ))
{
$lfdNr++;
Die Variable $lfdNr dann an die Stelle wo die Nummer ausgegeben werden soll:

Code: Alles auswählen

echo "$lfdNr";

Re: Lfd.-Nr. in php

Verfasst: 19.07.2011 19:04
von seemann1965
Hallo posaunen,
leider wird bei deinem Script nur immer 0 ausgegeben.

@BNa hab ich ja auch so geschrieben, nur wenn du Eintrag 5 löschst ist die ID 5 auch mit wech,
bei 11 Einträgen sind aber nur 8 vorhanden, weil 3 gelöscht sind.

Gruß seemann

Re: Lfd.-Nr. in php

Verfasst: 19.07.2011 19:06
von posaunen
Zeig mal was Du da wie eingebaut hast.

Re: Lfd.-Nr. in php

Verfasst: 19.07.2011 20:15
von seemann1965
Hallo posaunen,
hier der Script:
echo '<table border=0 cellspacing=0 align=center>';
$lfdNr=0;while ($datensatz = mysql_fetch_array( $abfrageergebnis ))
{
$lfdNr++;
// Jeder Datensatz entspricht einer Tabellenzeile
echo "<tr><td><table border=0 cellspacing=0><tr>";
echo "<td><font face=verdana size=4>$lfdNr ).</font></td>";
echo "<td><font face=verdana size=5><b>" .htmlspecialchars( $datensatz['vorname'] ). "</b></font></td>";
echo "<td><font face=verdana size=5><b>&nbsp;" .htmlspecialchars( $datensatz['name'] ). "</b></font></td>";
ging nur so anders kommt eine Fehler Meldung.

Gruß seemann

Edit: "f" vergessen jetzt gehts, hehehe.
Wie bekommt man die LfdNr. "aufwärts" zählend?
Danke für deine Hilfe.

Re: Lfd.-Nr. in php

Verfasst: 20.07.2011 00:04
von BNa

Code: Alles auswählen

ORDER BY `id` ASC";

Re: Lfd.-Nr. in php

Verfasst: 20.07.2011 14:28
von seemann1965
BNa hat geschrieben:

Code: Alles auswählen

ORDER BY `id` ASC";
...kann doch so bestimmt nicht gehen, weil die "LfdNr" doch keinen Bezug zur "id" haben, oder sollte ich da irren.

Wie bekommt man die LfdNr. "aufwärts" zählend?
Hier der Script:
echo "<td><font face=verdana size=4>$lfdNr ).</font></td>";
Quasi soll der erste und älteste Eintrag die 1 haben und der letzte und neuste Eintrag die höchste Zahl.

Gruß seemann

Re: Lfd.-Nr. in php

Verfasst: 20.07.2011 14:35
von BNa
seemann1965 hat geschrieben:...kann doch so bestimmt nicht gehen
Ich würde immer erst testen

Re: Lfd.-Nr. in php

Verfasst: 20.07.2011 15:00
von posaunen
BNa hat geschrieben:
seemann1965 hat geschrieben:...kann doch so bestimmt nicht gehen
Ich würde immer erst testen
Dem kann ich mich nur anschließen.