Moin!
<?php ### anzeigen.php
echo "<pre>\n";
pint_r($_GET);
echo "</pre>\n";
?>
Schreib es ihr doch gleich richtig und sicher hin...
Meine Betrachtungen gehen von einer Tabelle mit den Spalten:
id - (big)integer, autoindex Wieviele Bilder dürfe es denn werden?
filename - text
text - text
gueltig - boolean (Wahrheitswert)
aus.
<?php #anzeigen.php
# Ermittlung der angeforderten Nummer:
if (isset($_GET['nr'])) {
# wenn die URI einen Wert für die Variable 'nr' enthält:
$intAktuellesBild = (int)$_GET['nr'];
# sei die Variable $intAktuellesBild gleich dem ganzzahligen Wert dieser Variable
# Die explizite Typumwandlung in ganzzahlig verhindert hier wirkungsvoll Angriffe
# auf die Datenbank
if ($intAktuellesBild < 1) {
# Für Spaßvögel, die negative Werte eingeben
$intAktuellesBild = 1;
}
}
} else {
# Was, wenn nicht?
$intAktuellesBild = 1;
# Man nehme, so man hat, einfach das erste Bild...
}
print "<hr>Angefordertes Bild: $intAktuellesBild</hr>";
# Du holst die Daten aus der Datenbank, wie das geht scheinst Du ja zu wissen ... unter anderem auch die Nummer des letzten (=Anzahl gültiger Bilder) und des ersten Bildes (id des ersten gültigen Bildes)
# Ferner musst Du Dir noch Gedanken machen, was passiert, wenn es
# mal (z.B. wegens Löschens) mittenmang in der Numerierung ein Bild nicht
# mehr gibt oder Du es nicht zeigen willst. Vielleicht solltest Du
# also statt des Datensatzes mit der passenden id den n-ten " gültigen
# Datensatz (als offset) geben lassen. Lies hierzu im MySQL- Manual Deiner Wahl
# unter Select und dort unter Limit nach.
# Vorschlag: hier: [link:http://dev.mysql.com/doc/refman/4.0/de/select.html]
$intErstesBild = 1;
# Ermitteln von $intLetztesBild
# SQL: SELECT COUNT(id) AS intLetztesBild FROM bilder WHERE gueltig=TRUE;
if ($intAktuellesBild > $intLetztesBild) {
# Für Spaßvögel, die sehr große Werte eingeben
$intAktuellesBild = $intLetztesBild;
}
# Dann folgt ein wenig Kinderkram:
if ($intAktuellesBild == $intErstesBild) {
$intVorherigesBild = $intLetztesBild;
} else {
$intVorherigesBild = $intAktuellesBild - 1;
}
if ($intAktuellesBild == $intLetztesBild) {
$intNaechstesBild = $intErstesBild;
} else {
$intNaechstesBild = $intAktuellesBild + 1;
}
print "<hr>Angefordertes Bild: $intAktuellesBild";
print "<hr>Vorheriges Bild: $intNaechstesBild";
print "<hr>Nächstes Bild: $intNaechstesBild";
print "<hr>Erstes Bild: 1";
print "<hr>Letztes Bild: $intLetztesBild";
# SQL: SELECT id, filename, text FROM bilder where gueltig=TRUE ORDER BY id LIMIT $intAktuellesBild,1;
# [...]
?>
Jetzt musst Du noch die Abfrabgen bauen und das ganze zu einer brauchbaren Seite umrüsten. Hinweise hat Du genug und die SQL-Abfrage selbst scheint Dir ja keine Sorgen zu bereiten...
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development