PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nächsten wert aus der datenbank


comriker
19.08.2009, 14:29:43
hi Leute

habe folgendes Problem. Bin gerade dabei eine kleine gallerie zu schreiben.
dabei werden die pics hochgeladen und dann ein link mit name in die db geschrieben.
Was jetzt mein problem ist, dass ich es nicht hinbekomme, dass er mir immer zu nächsten id einer gallerie springt und diese dann anzeigt.
wenn ich mit a++ oder $i geht das so lala. Sobald ich aber eine bild aus der laufenden Serie lösche und jemand die bilder durchklickt, kommt er über kurz oder lang zu der zeile wo kein bild mehr in der db ist.
und dann kommt ein fehler.

Gibt es einen sql befehl, wo ich auswählen kann, wo der nächst höhere oder niedriegere wert (id) des aktuellen wertes bekomme, so dass ich den lücken aus dem weg gehe.

So wie man mit MAX oder MIN den niedrigsten oder höchsten wert ausgeben kann.

bsp

SELECT MAX(ID) FROM pics WHERE gal_id = 2

habe jetzt eine ganze weile rumgehirnt aber keinen sauberen lösungsansatz gefunden.

DokuLeseHemmung
19.08.2009, 14:40:09
Schon von LIMIT gehört?
Das MySQL Handbuch gibt gerne Auskunft.

PS:
Dadurch, dass man etwas nicht weiß, wird man nicht zum Experten.
Du eröffnest deine Threads im falschen Board.

comriker
19.08.2009, 14:43:50
alles klar... danke

vt1816
19.08.2009, 15:25:10
Du eröffnest deine Threads im falschen Board.

da kann geholfen werden ...

[mod: verschoben]

Auf der Mauer
19.08.2009, 17:13:07
Hallo comriker,

du machst eine Datenbankabfrage.


//Abfragen der letzten ID

$abfrage ="SELECT id FROM table ORDER BY id DESC LIMIT 1";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))

//Letzte ID + 1 = Nächste ID

$NeueID = $row->ID+1;
$NeuerDateiName = "Bild$NeueID.jpg";



Aber bevor du da mit den ID's rumhangelst denke doch mal darüber nach den Dateinamen anders als Anhand der ID zuerstellen. (Per timestamp z.B)

Dein System bringt spätestens wenn mehrere gleichzeitig Bilder uploaden dürfen Probleme mit sich. Dann werden die Datensätze nämlich öfters überschrieben weil in der Zeit in der die ID abgefragt wird jemand anderes bereits mit der selben ID einen Datensatz angelegt hat. Könnte bei timestamp theoretisch auch passieren wenn zwei Benutzer im selben Moment den Button drücken, aber die Wahrscheinlichkeit ist um einiges geringer.

Gruß
René