Hallöle!
Ja ich Code mal wieder, nach langer langer Zeit
So da in meiner Gallerie die Vor/Zurück Buttons ziemlich Buggy sind (fallen teilweise in Endlosschleifen)
muss ich das ganze einwenig verändern...
Hier ein Teil des abhängigen Codes
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
//Hohle Daten aus der Adressleiste
if (is_numeric($_GET['id'])) $picid = $_GET['id'];
if (is_numeric($_GET['vpic'])) $vpic = $_GET['vpic'];
if (is_numeric($_GET['npic'])) $npic = $_GET['npic'];
if (preg_match("^(([a-z0-9_])+|\|)+\$^",$_GET['pfad'])) $pfad = $_GET['pfad'];
if (ctype_alnum($_GET['underloc'])) $underloc = strip_tags($_GET['underloc']);
if (preg_match("^([a-z0-9]{1,2})-([0-9]{1,2})-([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})-([0-9]{1,2}).([a-z]{3})\$^",$_GET['blogpic'])) $blogpic = $_GET['blogpic'];
//Convertiere den Pfad in lesbaren quellcode
if (isset($vpic) || isset($npic)) {
$picpfad = str_replace('|', '/', $pfad);
$picpfad .= $underloc;
if (empty($picpfad)) $random = true;
}
if (isset($vpic)) $nextpic = $vpic;
elseif (isset($npic)) $nextpic = $npic;
//Suche nach der naechsten id
if (isset($nextpic) || isset($random)) {
for ($i = 1; ;$i++) {
if (isset($random)) $SELECT = "SELECT id FROM Pictures WHERE id = '{$nextpic}'";
else $SELECT = "SELECT id FROM Pictures WHERE id = '{$nextpic}' AND path = '{$picpfad}'";
$SQL = mysql_query($SELECT);
$FETCH = mysql_fetch_object($SQL);
$fid = $FETCH->id;
if (!empty($fid)) {
$picid = $fid;
break;
} else {
if (isset($npic)) $nextpic++;
else $nextpic--;
}
if ($nextpic < 0) $nextpic = $nextpic * -1;
//Falls kein Bild mehr vorhanden ist, wird nach 50 leeren abfragen wieder bei 0 angefangen
if ($i == 100) {
$nextpic = 0;
$i = 0;
}
}
}
|
Zusammenfassung:
Das Script zieht von der ID des aufgerufenen Bildes je nachdem ob man Vor,- oder Zurückblättern will 1 auf/ab.
Dabei überprüft er ob die ID die er nun ausgewählt hat verfügbar ist oder nicht. Falls nicht, zählt er einfach noch
mal 1 dazu/ab. Das ganze macht er so 100 mal... bevor er einfach ne 0 reinschreibt (ziemlich böse lösung) aber
sie funktioniert zur not teilweise
Verfällt aber gerne in Endlosschleifen
Idee:
Meine Idee wäre es das momentan mit PHP gelöste system einfach von Mysql lösen zu lassen.
Irgendein guter Query der selbständig nachschaut wäche ID als nächstes verfügbar ist. Vorwärts oder Rückwärts.
Ich hab nur keinen peil wie ich das realisieren sollte!
Würd mich für jede Idee freuen
Gruß
UT2003ler
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »UT2003ler« (1. März 2009, 13:55)