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

C++ JAVA
Post Reply
streleca_stz
Турист
Турист
Posts: 487
Joined: Sun Jul 12, 2009 10:30 pm
Location: Стара Загора

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

Post by streleca_stz » Tue Dec 27, 2011 7:53 am

Здравейте! Искам да ви попитам как мога да напрвя при преглед на главна категория, в която има под категории, за всяка под категория да се показва от последната добавена снимка умаления вариант (записан е в 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());[/php] :shock: :idea:

User avatar
Genius_m
Турист
Турист
Posts: 502
Joined: Sat Mar 06, 2010 2:08 pm
Location: localhost

Post by Genius_m » Tue Dec 27, 2011 9:49 am

След "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());
[/php]

User avatar
palex
Турист
Турист
Posts: 431
Joined: Fri Jul 29, 2011 8:30 pm
Answers: 76
Contact:

Post by palex » Tue Dec 27, 2011 1:24 pm

Ако приемем, че в таблицата с картинките имаш поле 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');[/php]

Ако ID полето в gallery_pic се казва по друг начин трябва p.id да го смениш с p.както_ти_се_казва_ID_полето.

streleca_stz
Турист
Турист
Posts: 487
Joined: Sun Jul 12, 2009 10:30 pm
Location: Стара Загора

Post by streleca_stz » Tue Dec 27, 2011 1:46 pm

Genius_m wrote:След "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());
[/php]
Така лимитира само 1 категория да се показва...
palex wrote:Ако приемем, че в таблицата с картинките имаш поле 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');[/php]

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

User avatar
palex
Турист
Турист
Posts: 431
Joined: Fri Jul 29, 2011 8:30 pm
Answers: 76
Contact:

Post by palex » Tue Dec 27, 2011 4:33 pm

Дай структурата на 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());[/php]

streleca_stz
Турист
Турист
Posts: 487
Joined: Sun Jul 12, 2009 10:30 pm
Location: Стара Загора

Post by streleca_stz » Wed Dec 28, 2011 9:21 am

palex wrote:Дай структурата на 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());[/php]
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;

User avatar
palex
Турист
Турист
Posts: 431
Joined: Fri Jul 29, 2011 8:30 pm
Answers: 76
Contact:

Post by palex » Wed Dec 28, 2011 9:31 pm

Опитай така:

[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());[/php]

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

streleca_stz
Турист
Турист
Posts: 487
Joined: Sun Jul 12, 2009 10:30 pm
Location: Стара Загора

Post by streleca_stz » Thu Dec 29, 2011 5:41 pm

palex wrote:Опитай така:

[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());[/php]

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

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

Post Reply