这是一个房地产网站 - 它们显示存储在数据库中的数千个广告 - 遗憾的是,照片和广告存储在数据库中的两个不同的表中。有关属性的信息位于名为properties的表下 - 图像存储在名为propertyImages
的表中 - 它们共同的一个是propspaceId
- 这就是它们的链接方式。
某些属性有多个图片 - 假设有四张照片的广告对该广告有一个唯一propspaceID
(在属性表内) - 但属性图表中属于该广告的照片有与该广告一起使用的所有照片的ID。
基本上,所有广告都有排名。这个排名数字由不同的因素组成,我已经能够做到这一点。然而,其中一个因素是每个广告所拥有的图像数量 - 旧程序员编写了这段代码:
$property['totalImages'] = mysql_num_rows(mysql_query("SELECT * FROM `propertyImages` WHERE propspaceId=".$property['propspaceId']));
我似乎无法理解这一点,或写一个新的。此代码不起作用。然后,在我编写条件的代码后面,我写了这样的东西。
switch($property['totalImages']){
case $property['totalImages'] >= 1 :
$rank+=100;
break;
}
...等。
第二个代码不是问题。我需要找到一种方法来获取匹配propertyImages
(propspaceId
)的s
表格中的照片数量,然后例如{{1}有4个重复值我希望变量为4.
答案 0 :(得分:1)
第二个代码就是问题。您需要将其转换为if
或者像这样执行:
switch(true) {
case ($property['totalImages'] >= 1):
$rank += 100;
break;
}
在switch
中,您要将$property['totalImages']
的整数值与$property['totalImages'] >= 1
的布尔结果进行比较。
使用if
之类的内容:
if($property['totalImages'] >= 1) {
$rank += 100;
}
elseif($property['totalImages'] == 0) {
//rank = something else
}
//other stuff, you didn't show more than 1 condition
答案 1 :(得分:0)
试试这个:
select count(*) as number_photos from propertyImages where propspaceId = ?