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:
und eine tabelle für die bilder:
hier können die galerien-eigner bilder beliebig hinzufügen und löschen.
die galerie-übersicht arbeitet mit folgendem query:
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:
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
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_id` mediumint(8) unsigned NOT NULL auto_increment,
`type` enum('user','group','public','event') collate latin1_german2_ci NOT NULL default 'user',
`user_id` mediumint(8) unsigned NOT NULL default '0',
`group_id` mediumint(8) unsigned NOT NULL default '0',
`galname` varchar(30) collate latin1_german2_ci default NULL,
`galdesc` varchar(255) collate latin1_german2_ci default NULL,
`count` mediumint(9) NOT NULL default '0',
`private` enum('0','1') collate latin1_german2_ci NOT NULL default '0',
`restricted` enum('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_id` mediumint(8) unsigned NOT NULL auto_increment,
`gallery_id` mediumint(8) unsigned NOT NULL default '0',
`user_id` mediumint(9) NOT NULL default '0',
`filename` varchar(10) collate latin1_german2_ci default NULL,
`thumbname` varchar(30) collate latin1_german2_ci default NULL,
`time` int(11) NOT NULL default '0',
`picname` varchar(30) collate latin1_german2_ci default NULL,
`views` mediumint(8) unsigned NOT NULL default '0',
`comments` mediumint(8) unsigned 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`, `comments` FROM `pics` WHERE
`gallery_id`='1' ORDER BY `time`, `pic_id` LIMIT 0, 20
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_id` FROM `pics` WHERE `gallery_id`='1' ORDER BY `time`, `pic_id`
gibts da ncoh andere möglcihkeiten?
mfg & thx im vorraus
Kommentar