Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

UT2003ler

Lebende Foren Legende

Dabei seit: 04.10.2002

Beiträge: 1 514

 

1 Zum Seitenanfang

Sonntag, 1. März 2009, 13:54

MySQL abfrage auf nächste verfügbare "ID" Spalte

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 :D

Gruß
UT2003ler
wir leben um zu (er)leben

Website: www.virtoreal.net

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »UT2003ler« (1. März 2009, 13:55)

 

Norvares

unregistriert

2 Zum Seitenanfang

Sonntag, 1. März 2009, 15:41

MySQL-Abfrage(n)

1
2
SELECT min(id) from PICTURES where id > $lastid     <---- nächst größere
SELECT max(id) from pictures where id < $lastid <---- nächst kleinere


Damit kannst du über SQL die nächst größere bzw. kleinere ID ermitteln.

Gruß

Norvares

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Norvares« (1. März 2009, 15:44)

 

UT2003ler

Lebende Foren Legende

Dabei seit: 04.10.2002

Beiträge: 1 514

 

3 Zum Seitenanfang

Sonntag, 1. März 2009, 16:35

Sehr geil!!!

Vielen Dank Norvares!
wir leben um zu (er)leben

Website: www.virtoreal.net
 

Ähnliche Themen