我需要一些帮助。我保存了两种类型的图像,但不是必需的。
我想显示"呈现"默认情况下是图片,但如果没有"呈现"图片,显示"宣传册"而不是图像。
现在它设置为显示nopic.png图像,如果没有渲染图像,但我想用手册图像替换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语句,我可以让它发挥作用吗?
这是表中的内容...... table screenshot 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}";
}
答案 0 :(得分:0)
我的情况与您的要求类似,如下所示。
我有一个带有架构的表格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 |
+------+------+----------+
我有以下要求:
name
的元组中选择sal
和'cat1'
,即使name
也存在于cat_name
的另一个元组中'cat2'
以及(即UNION
)选择仅name
作为sal
而非'cat2'
的{{1}}和cat_name
} 即可。因此,在我的情况下,'cat1'
与'cat1'
类似,'rendering'
与您的'cat2'
类似。
我必须使用以下SQL:
'brochure'
<强> O / P 强>
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');
此处+------+------+
| name | sal |
+------+------+
| d | 7001 |
| b | 2235 |
| e | 1234 |
| a | 1234 |
| c | 1234 |
+------+------+
,'d'
,'b'
每个只有一个'e'
因此包含了cat_name
和'a'
两者{ {1}}即'c'
和cat_name
;因此,'cat1'
和'cat2'
的记录包括'a'
'c'
。
由于我对 php 中使用的语法不熟悉,我无法为您提供完整的解决方案。希望这会有所帮助。