nächster eintrag bei unbekannter id..

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • nächster eintrag bei unbekannter id..

    sers... ich suche nach einer performanten lösung meines probs:

    ich habe z.b. eine bildergalerie ( http://myplaner.de/index.php?mod=sho...y&gallery_id=1 )

    meine tabellen sind wie folgt aufgebaut:

    ich habe eine tabelle für die galerien:

    PHP-Code:
    CREATE TABLE `galleries` (
      `
    gallery_idmediumint(8unsigned NOT NULL auto_increment,
      `
    typeenum('user','group','public','event'collate latin1_german2_ci NOT NULL default 'user',
      `
    user_idmediumint(8unsigned NOT NULL default '0',
      `
    group_idmediumint(8unsigned NOT NULL default '0',
      `
    galnamevarchar(30collate latin1_german2_ci default NULL,
      `
    galdescvarchar(255collate latin1_german2_ci default NULL,
      `
    countmediumint(9NOT NULL default '0',
      `
    privateenum('0','1'collate latin1_german2_ci NOT NULL default '0',
      `
    restrictedenum('0','1'collate latin1_german2_ci NOT NULL default '0',
      
    PRIMARY KEY  (`gallery_id`),
      
    KEY `user_id` (`user_id`),
      
    KEY `group_id` (`group_id`)
    ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci

    und eine tabelle für die bilder:

    PHP-Code:
    CREATE TABLE `pics` (
      `
    pic_idmediumint(8unsigned NOT NULL auto_increment,
      `
    gallery_idmediumint(8unsigned NOT NULL default '0',
      `
    user_idmediumint(9NOT NULL default '0',
      `
    filenamevarchar(10collate latin1_german2_ci default NULL,
      `
    thumbnamevarchar(30collate latin1_german2_ci default NULL,
      `
    timeint(11NOT NULL default '0',
      `
    picnamevarchar(30collate latin1_german2_ci default NULL,
      `
    viewsmediumint(8unsigned NOT NULL default '0',
      `
    commentsmediumint(8unsigned NOT NULL default '0',
      
    PRIMARY KEY  (`pic_id`),
      
    KEY `gallery_id` (`gallery_id`)
    ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci


    hier können die galerien-eigner bilder beliebig hinzufügen und löschen.

    die galerie-übersicht arbeitet mit folgendem query:

    PHP-Code:
    SELECT SQL_CALC_FOUND_ROWS `pic_id`, `thumbname`, 
    `
    picname`, `views`, `commentsFROM `picsWHERE 
    `gallery_id`='1' ORDER BY `time`, `pic_idLIMIT 020 

    wenn ich also ein pic sehen will, arbeite ich mit der pic_id:
    http://myplaner.de/index.php?mod=showpic&pic_id=3

    jetzt wurde aber der wunsch für einen vor- und zurückbutton geäußert... wie komm ich jetzt also auf elegante (!!!) art und weise auf die nächste /vorherige pic_id um die links schreiben zu können?

    ich hatte erstmal die idee auf der galerie-übersicht einen query in der richtung von:

    PHP-Code:
    SELECT `pic_idFROM `picsWHERE `gallery_id`='1' ORDER BY `time`, `pic_id
    und dann das ergebnis von dem query immer über die url mitzuschleifen... performant - mehr oder weniger. elegant? NEIN!

    gibts da ncoh andere möglcihkeiten?

    mfg & thx im vorraus
    www.myplaner.de

  • #2
    Re: nächster eintrag bei unbekannter id..

    next
    SELECT id FROM pics WHERE id > aktuelle_id ORDER BY id ASC LIMIT 1
    prev
    SELECT id FROM pics WHERE id < aktuelle_id ORDER BY id DESC LIMIT 1

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      um ehrlich zu sein, macht das auch ncoh sinn! ^^

      ich bin bisher immer davon ausgegangen, dass die tabelle nicht immer in der reihenfolge ist, in der man es eingetragen hat... aber so macht das echt sinn, wenn man nach dem primary-key sortiert! :-/

      <- *dumm* ^^

      also thx, den denkanstoß hab ich gebraucht!
      www.myplaner.de

      Kommentar


      • #4
        btw. nur mal so als Kommentar am Rande, rote Border auf schwarzem Hintergrund sieht *piep* aus ^^;

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          lol... ich warte auch grad auf nen design des n freund macht! ^^

          coden kann ich... aber designen... naja... man siehts ja!
          www.myplaner.de

          Kommentar

          Lädt...
          X