Показване на последна снимка като обложка на категория?

streleca_stz

Registered
Здравейте! Искам да ви попитам как мога да напрвя при преглед на главна категория, в която има под категории, за всяка под категория да се показва от последната добавена снимка умаления вариант (записан е в db) като "обложка" на под категорията? Аз се пробвах да го направя, но ми изкарва всички снимка от категориите с имената на самите категории..
PHP:
$rs = mysql_query('SELECT gallery_sub_cats.sub_cat_id, gallery_sub_cats.name, gallery_sub_cats.info, gallery_pic.thumbnail FROM `gallery_sub_cats` INNER JOIN `gallery_pic` ON gallery_pic.sub_cat_id=gallery_sub_cats.sub_cat_id WHERE gallery_sub_cats.cat_id='.$cat.' ORDER BY gallery_sub_cats.name ASC') or die (mysql_error());
:shock: :idea:
 
След "ASC" напиши "LIMIT 1"
PHP:
$rs = mysql_query('SELECT gallery_sub_cats.sub_cat_id, gallery_sub_cats.name, gallery_sub_cats.info, gallery_pic.thumbnail FROM `gallery_sub_cats` INNER JOIN `gallery_pic` ON gallery_pic.sub_cat_id=gallery_sub_cats.sub_cat_id WHERE gallery_sub_cats.cat_id='.$cat.' ORDER BY gallery_sub_cats.name ASC LIMIT 1') or die (mysql_error());
 
Ако приемем, че в таблицата с картинките имаш поле ID аз бих го направил така:

PHP:
$rs = mysql_query('SELECT c.sub_cat_id, c.name, c.info, (select p.thumbnail from `gallery_pic` p WHERE p.sub_cat_id=c.sub_cat_id Order by p.id DESC LIMIT 1) as thumbnail FROM `gallery_sub_cats` WHERE gallery_sub_cats.cat_id='.$cat.' ORDER BY gallery_sub_cats.name ASC');

Ако ID полето в gallery_pic се казва по друг начин трябва p.id да го смениш с p.както_ти_се_казва_ID_полето.
 
Genius_m каза:
След "ASC" напиши "LIMIT 1"
PHP:
$rs = mysql_query('SELECT gallery_sub_cats.sub_cat_id, gallery_sub_cats.name, gallery_sub_cats.info, gallery_pic.thumbnail FROM `gallery_sub_cats` INNER JOIN `gallery_pic` ON gallery_pic.sub_cat_id=gallery_sub_cats.sub_cat_id WHERE gallery_sub_cats.cat_id='.$cat.' ORDER BY gallery_sub_cats.name ASC LIMIT 1') or die (mysql_error());
Така лимитира само 1 категория да се показва...

palex каза:
Ако приемем, че в таблицата с картинките имаш поле ID аз бих го направил така:

PHP:
$rs = mysql_query('SELECT c.sub_cat_id, c.name, c.info, (select p.thumbnail from `gallery_pic` p WHERE p.sub_cat_id=c.sub_cat_id Order by p.id DESC LIMIT 1) as thumbnail FROM `gallery_sub_cats` WHERE gallery_sub_cats.cat_id='.$cat.' ORDER BY gallery_sub_cats.name ASC');

Ако ID полето в gallery_pic се казва по друг начин трябва p.id да го смениш с p.както_ти_се_казва_ID_полето.
дава ми уорнинг
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
 
Дай структурата на gallery_pic и поправи реда, така че да показва грешката и я дай и нея:

PHP:
$rs = mysql_query('SELECT c.sub_cat_id, c.name, c.info, (select p.thumbnail from `gallery_pic` p WHERE p.sub_cat_id=c.sub_cat_id Order by p.id DESC LIMIT 1) as thumbnail FROM `gallery_sub_cats` WHERE gallery_sub_cats.cat_id='.$cat.' ORDER BY gallery_sub_cats.name ASC') or die(mysql_error());
 
palex каза:
Дай структурата на gallery_pic и поправи реда, така че да показва грешката и я дай и нея:

PHP:
$rs = mysql_query('SELECT c.sub_cat_id, c.name, c.info, (select p.thumbnail from `gallery_pic` p WHERE p.sub_cat_id=c.sub_cat_id Order by p.id DESC LIMIT 1) as thumbnail FROM `gallery_sub_cats` WHERE gallery_sub_cats.cat_id='.$cat.' ORDER BY gallery_sub_cats.name ASC') or die(mysql_error());
CREATE TABLE IF NOT EXISTS `gallery_pic` (
`pic_id` int(12) NOT NULL auto_increment,
`sub_cat_id` int(12) NOT NULL,
`from` int(12) NOT NULL,
`title_p` varchar(100) NOT NULL,
`description` varchar(100) NOT NULL,
`thumbnail` text NOT NULL,
`url` text NOT NULL,
`date_added` int(12) NOT NULL,
`views` int(12) NOT NULL default '0',
`open` tinyint(4) NOT NULL default '1',
PRIMARY KEY (`pic_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7;
 
Опитай така:

PHP:
$rs = mysql_query('SELECT c.sub_cat_id, c.name, c.info, (select p.thumbnail from `gallery_pic` p WHERE p.sub_cat_id=c.sub_cat_id Order by p.pic_id DESC LIMIT 1) as thumbnail FROM `gallery_sub_cats` WHERE gallery_sub_cats.cat_id='.$cat.' ORDER BY gallery_sub_cats.name ASC') or die(mysql_error());

и ако ти даде грешка този път я дай
 
palex каза:
Опитай така:

PHP:
$rs = mysql_query('SELECT c.sub_cat_id, c.name, c.info, (select p.thumbnail from `gallery_pic` p WHERE p.sub_cat_id=c.sub_cat_id Order by p.pic_id DESC LIMIT 1) as thumbnail FROM `gallery_sub_cats` WHERE gallery_sub_cats.cat_id='.$cat.' ORDER BY gallery_sub_cats.name ASC') or die(mysql_error());

и ако ти даде грешка този път я дай


Unknown column 'c.sub_cat_id' in 'field list'
 

Back
Горе