pw_cnalbum是相册信息表,包括相册和群组里面的相册。
经过核对,相册里面的相册(atype=0)照片数量(表里photonum字段)和实际数量是一致的。但群组相册(atype=1)数量似乎不准确,不知道为什么。
第一处的照片数量差距怎么那么大呢?(70张,25张)经过查看模板(群组视图,m_galbum.htm)文件,代码如下(对应70张的那个地方):
if (
empty($a)) {print <<<EOT
-->
<div class="g_navB mb10">
<span class="fr">
<!--
EOT;
if ($ifadmin || $uploadAvaliable) {print <<<EOT
-->
<a href="apps.php?q=galbum&a=upload&cyid=$cyid" >上传照片</a> ┊ <!--
EOT;
}print <<<EOT
-->
<a href="apps.php?q=galbum&cyid=$cyid&a=photolist">全部照片</a> ┊ <a href="apps.php?q=galbum&cyid=$cyid" class="current">相册专辑</a><!--
EOT;
if($ifadmin){print<<<EOT
-->
┊ <a href="apps.php?q=galbum&a=create&cyid=$cyid" >创建相册</a>
<!--
EOT;
}print<<<EOT
-->
</span>
<span class="mr10">共{$colony['albumnum']}本相册</span> {
$photonum} 张照片
</div>
对应的php文件,也是“empty($a)”这部分,查询语句:
//是否有可上传的相册
$uploadAvaliable = false;
if (
empty($a)) {
$photonum = $db->get_value("SELECT SUM(photonum) AS
photonum FROM pw_cnalbum WHERE ownerid=".S::sqlEscape($cyid));
注意看它的查询条件“ownerid=".S::sqlEscape($cyid)”,也就是数据表中ownerid等于当前群组id($cyid)。然而,经过仔细研究才明白,
ownerid其实分两种,意义是不一样的:属于相册的(atype=0)是用户uid,对应owner字段的用户名;而属于群组的(atype=1)是群组id,对应owner字段的群组名,只是这个群组名的更新似乎不那么及时。