• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MYSQL PROBLEM! auto_increment Danke für jede Hilfe

Status
Für weitere Antworten geschlossen.

webnugget

Neues Mitglied
Hi@all
Ich habe ein Mysql Problem in Msql.
Ich habe ein PHP Script, was ein zufälliges Bild auswählt, das dann angezeigt wird, und die Dateipfade sind in einer Mysql Tabelle gespeichert.
Ich habe auch ein Script, mit dem ich Einzelne Bilder im Admin Bereich mit DELETE * From bilder WHERE id='$id' entfernen kann.
Das Problem ist, wenn ich jetzt 3 Bilder habe und Bild 2 lösche, gibt es
nurnoch die Felder mit der ID 1 und 3.
Mein zufallscript ermittelt die anzahl der bilder und dann wird die ID des Zufallbildes per rand(1,$max) ermittelt. Aber dann wird entweder Bild 1, oder überhauptnichts angezeigt, weil die ID ja entweder 1 oder die nicht vorhandene 2 ist.Wenn ich einen neuen Dateipfad im Adminbereich hinzufüge ist die ID aber nicht die fehlende 2 sondern es geht bei 4 weiter.
Meine Frage ist, wie ich dieses Problem lösen kann, dass nur vorhandene ID's angezeigt werden.
Danke für jede hilfe:-)
 
PHP:
$bilder = scandir("bilder");
unset($bilder[0]);
unset($bilder[1]);
$zufallsbild = $bilder[array_rand($bilder)];
Die Bilder müssen dann alle im Ordner "Bilder" liegen.

(ungetestet)
 
Also, entweder änderst du es manuell um, dass auto_increment wieder bei 2 anfängt und nach dem Einfügen wieder bei 4 (lässt sich mit phpmyadmin recht einfach lösen) oder du erweiterst dein Script und fragst ab, ob es die ID überhaupt gibt.

Noch eine Idee wäre es, dass du das Bild nicht einfach löchst, sondern ein neues Feld erstellst, was du dann z.B. "visible" nennst. Standardwert setzt du auf 1 und wenn visible eben 0 ist, wird rand(1,$max) erneut ausgeführt.
 
Warum fragst du nicht gleich per Zufall das Ergebnis ab:
Code:
SELECT * FROM tabelle ORDER BY RAND(NOW()) LIMIT 1

dann brauchst du nix mehr mit php errechnen
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben