我需要一些帮助。我保存了两种类型的图像,但不是必需的。
我想默认显示"渲染"图像,但没有"渲染"图像,请改为显示"小册子"图像。
现在,如果没有渲染图像,它设置为显示nopic.png图像,但我想用小册子图像替换nopic图像。总会有一个小册子图像,所以不需要nopic图像。
这是当前的代码...
$query->select('*, c.alias')
->from('#__iproperty_catfp_img i')
->join('inner','#__iproperty_categories c ON c.id = i.cat_id')
->where('i.fp_id = '.(int)$fb_id)
->where('i.cat_id = '.(int)$cat_id)
->where('i.img_type = "rendering"')
->order('i.id DESC');
$db->setQuery($query, 0, 1);
$thumb = $db->loadObject();
$root_path = ($rel_path) ? JURI::root(true) : substr(JURI::root(), 0, -1);
//add appropriate path to thumbnail file
if ( $thumb ) {// if rendered image
$thumbnail = $root_path."/fpimagegallery/$thumb->alias/$thumb->img_type/$thumb->file_name";
}
else { //no rendered image, show brochure image
$path = $root_path.$settings->fpimgpath;
$thumbnail = $path.'nopic.png';
}
这是我尝试过的,但没有显示图像...
$query->select('*, c.alias')
->from('#__iproperty_catfp_img i')
->join('inner','#__iproperty_categories c ON c.id = i.cat_id')
->where('i.fp_id = '.(int)$fb_id)
->where('i.cat_id = '.(int)$cat_id)
->where('i.img_type = "rendering" AND "brochure"')
->order('i.id DESC');
$db->setQuery($query, 0, 1);
$thumb = $db->loadObject();
$root_path = ($rel_path) ? JURI::root(true) : substr(JURI::root(), 0, -1);
//add appropriate path to thumbnail file
if ( $thumb ) {// if rendered image
$thumbnail = $root_path."/fpimagegallery/$thumb->alias/$thumb->rendering/$thumb->file_name";
}
else { //if no rendered image, show brochure image
$thumbnail = $root_path."/fpimagegallery/$thumb->alias/$thumb->brochure/$thumb->file_name";
}
我想如果我正确地用 Where 语句,我可以让它工作吗?
这是表中的内容...表截图 http://expressville.com/fp_images_ss.png
实际上就文件路径而言...代码甚至可以像这样更改。所有文件夹都有一个渲染和小册子子文件夹,每个子文件夹中都有相应的图像。
if ( $thumb ) {
$thumbnail = $root_path . "/fpimagegallery/{$thumb->alias}/rendering/{$thumb->file_name}";
}
else {
$thumbnail = $root_path . "/fpimagegallery/{$thumb->alias}/brochure/{$thumb->file_name}";
}
我遇到了与您的要求类似的情况,即如下。
我有一个表emp1,其架构如下:
+----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| name | text | YES | | NULL | |
| sal | decimal(10,0) | YES | | NULL | |
| cat_name | varchar(11) | YES | | NULL | |
+----------+---------------+------+-----+---------+-------+
以及以下数据:
+------+------+----------+
| name | sal | cat_name |
+------+------+----------+
| c | 4002 | cat2 |
| d | 7001 | cat2 |
| a | 1234 | cat1 |
| b | 2235 | cat2 |
| c | 1234 | cat1 |
| a | 2235 | cat2 |
| e | 1234 | cat1 |
+------+------+----------+
我有以下要求:
- 从那些有
- cat_name
'cat1'
的元组中选择那些name
和sal
,即使该name
也存在于另一个元组中,具有cat_name
'cat2'
以及(即UNION
) 选择那些只有'cat2'
作为cat_name
而不'cat1'
的name
和sal
。
所以就我而言,'cat1'
类似于'rendering'
,'cat2'
类似于你的情况下'brochure'
。
我必须使用以下 SQL:
select name, sal from emp1 where name in (select name from emp1 group by name having
count(cat_name)=1)
union
select name, sal from emp1 where (name, sal, cat_name) in
(select * from emp1 where cat_name='cat1');
O/P
+------+------+
| name | sal |
+------+------+
| d | 7001 |
| b | 2235 |
| e | 1234 |
| a | 1234 |
| c | 1234 |
+------+------+
这里'd'
,'b'
,'e'
只有一个cat_name
因此被包括在内,'a'
和'c'
同时具有cat_name
即'cat1'
和'cat2'
;因此包括'a'
和'c'
的记录,cat_name
作为'cat1'
。
由于我不熟悉您在 php 中使用的语法,因此我无法为您提供完整的解决方案。希望这会有所帮助。