ich habe eine Datenbank mit folgenden Spalten: nr, url, name, beschreibung
so, mit einem php-script gebe ich die bilder zufällig mit ihrem namen und ihrer beschreibung aus, das klappt auch schon wunderbar, nur muss ich, wenn ich ein neues bild in die datenbank lade, bei „rand(1,x)“,[x is die maximale anzahl von bildern in der datenbank], immer x um 1 erhöhen, weil ja ein bild hinzugekommen ist.
da mir das aber auf die nerven geht, immer und immer wieder das script zu bearbeiten und dann hochzuladen habe ich mir überlegt, das x dynamisch sein soll, heißt, wenn ein bild hinzukommt, das es dann automatisch um 1 erhöht wird.
Gibt es da eine funktion die das ermöglicht?
ich bin über jede hilfe dankbar.
ich habe eine Datenbank mit folgenden Spalten: nr, url, name,
beschreibung
so, mit einem php-script gebe ich die bilder zufällig mit
ihrem namen und ihrer beschreibung aus, das klappt auch schon
wunderbar, nur muss ich, wenn ich ein neues bild in die
datenbank lade, bei „rand(1,x)“,[x is die maximale anzahl von
bildern in der datenbank], immer x um 1 erhöhen, weil ja ein
bild hinzugekommen ist.
da mir das aber auf die nerven geht, immer und immer wieder
das script zu bearbeiten und dann hochzuladen habe ich mir
überlegt, das x dynamisch sein soll, heißt, wenn ein bild
hinzukommt, das es dann automatisch um 1 erhöht wird.
Gibt es da eine funktion die das ermöglicht?
ich bin über jede hilfe dankbar.
Hallo Patrick,
die (lückenlos fortlaufende) Nummer des Feldes nr erhältst du automatisch mit „auto_increment“, einzustellen bei „Extras“ (ich nehme mal an, du hast eine MySQL-DB und phpMyAdmin?). Die brauchst du dann nicht mehr mit eingeben, das geht dann beim INSERT automatisch.
Dein X, also die maximale Anzahl aller DB-Einträge dieser Tabelle erhältst du dann mit SELECT COUNT(*) FROM myTable.
Ich muss dazu sagen, das ich erst ziemlich neu in php bin und keine ahnung hab, wie ich das mit rand() verbinde.
Das zählen funktioniert schon, aber irgendwie setzt der das bei rand nicht um, denn es kommen keine zufallsbilder mehr (beim aktualisieren der seite kommt immer nur ein bild).
Immerhin kein Error, also ist es schonmal nicht falsch.
man lernt nie aus, ich selbst bin auch nicht soo der Datenbank-Experte.
Der Vorschlag von Alex ist m.E. genau das, was du brauchst. Ich kannte die Möglichkeit, im Selekt mit rand() zu arbeiten auch noch nicht und kann das selbst gut gebrauchen.
Also: einfach den SELECT so übernehmen, wie ihn Alex schrieb und die LIMIT-Angabe anpassen (also 1, wenn du nur ein Bild ausgeben willst, 10 für zehn Bilder und das LIMIT ganz weglassen, wenn alle Bilder in zufälliger Reihenfolge angezeigt werden sollen.
Vielleicht noch als kleine Ergänzung: Bei wirklich großen Datenbanken mit ein paar 10000 Zeilen sollte man das nicht so machen, weil das ist nicht sehr schnell. Da dann doch lieber PHP nehmen.