Der Titel ist vielleicht etwas irreführend..., tut mir Leid dafür.
Ich habe eine Rechnungstabelle mit einem INT Feld, indem fortlaufende Nummern geschrieben werden (keine automatische Nummerierung).
Nun könnte es passieren, das die Nummern z. B. zwischen 100 und 200 belegt sind - also 100 Datensätze fortlaufend.
Angenommen ich lösche den Datensatz mit der Nr. 150, ensteht eine Lücke die aber automatisch wieder gefüllt werden soll wenn ein neuer Datensatz angelegt wird.
Es gibt also Datensätze fortlaufend ab 100 bis 149 und ab 151 bis 200.
Bei der Neuanlage von Datensätzen soll nun die 150 neu geschrieben werden und dann bei 201 weitergemacht werden.
Um die laufende Nummer mit 100 beginnend zu ermitteln benutze ich derzeit
jetzt würde ich sinngemäss:
ist Zahl < 100 mache 100
ist 100, mache 100+1
(Schleife)
ist 100+1 vorhanden, zähle +1 und mache 102
wenn nicht, mache 100+1
ist 101+1 vorhanden, zähle +1 und mache 103
wenn nicht, mache 100+1
Und genau diese Schleife gelingt mir nicht.
Dieser Versuch scheitert:
Wie kann ich das umsetzen?
Ich habe eine Rechnungstabelle mit einem INT Feld, indem fortlaufende Nummern geschrieben werden (keine automatische Nummerierung).
Nun könnte es passieren, das die Nummern z. B. zwischen 100 und 200 belegt sind - also 100 Datensätze fortlaufend.
Angenommen ich lösche den Datensatz mit der Nr. 150, ensteht eine Lücke die aber automatisch wieder gefüllt werden soll wenn ein neuer Datensatz angelegt wird.
Es gibt also Datensätze fortlaufend ab 100 bis 149 und ab 151 bis 200.
Bei der Neuanlage von Datensätzen soll nun die 150 neu geschrieben werden und dann bei 201 weitergemacht werden.
Um die laufende Nummer mit 100 beginnend zu ermitteln benutze ich derzeit
PHP-Code:
$rech = mysql_query("SELECT LFDNR,MONAT,JAHR,KDNR FROM ".$rechnung." WHERE JAHR = '".$jahr."' AND MONAT = '".$monat."'
ORDER BY LFDNR DESC LIMIT 1") or die(mysql_error());
$r_zeile_lfnr = mysql_fetch_array($rech);
if ($r_zeile_lfnr['LFDNR'] < '100')
$r_lfdnr_x = '100';
else
$r_lfdnr_x = $r_zeile_lfnr['LFDNR']+'1';
ist Zahl < 100 mache 100
ist 100, mache 100+1
(Schleife)
ist 100+1 vorhanden, zähle +1 und mache 102
wenn nicht, mache 100+1
ist 101+1 vorhanden, zähle +1 und mache 103
wenn nicht, mache 100+1
Und genau diese Schleife gelingt mir nicht.
Dieser Versuch scheitert:
PHP-Code:
if ($r_zeile_lfnr['LFDNR'] < '100')
$r_lfdnr_x = '100';
else if ($r_zeile_lfnr['LFDNR'] == '100')
$r_lfdnr_x = '101';
else if ($r_zeile_lfnr['LFDNR']++ != true)
$r_zeile_lfnr['LFDNR']+'1';
else
$r_lfdnr_x = $r_zeile_lfnr['LFDNR']+'1';
Kommentar