zencart后台提醒哪些商品的库存量为0

    今天,总监跟我说,由于客户需要,让我针对zencart进行些简单的二次开发。

    大体功能如下:

  • 当商品的库存为0的时候,在前台显示一个提示信息(由于这个功能,zencart默认就已经有了,所以就没去修改)
  • 在后台也应该提示相关信息,以提醒网站运营人员

最终的效果如下:

Code:

<!-----------------库存警告 start-->
<?php
    $sql="SELECT products_id,products_name,(SELECT count('products_id') FROM ".TABLE_PRODUCTS." WHERE ".TABLE_PRODUCTS.".products_quantity=0) AS unit FROM ".TABLE_PRODUCTS_DESCRIPTION." WHERE products_id IN (SELECT products_id FROM ".TABLE_PRODUCTS ." WHERE products_quantity=0)";
    $res=$db->Execute($sql);
    $units=$res->fields['unit'];
?>

<div class="reportBox">
<div class="header"><font color="Red">库存商品警告数量:<?php echo $units;?></font></div>

<div class="row"><font color="Red"><span class='left'>产品名称</span><span class="rigth">产品ID</span></font></div>
<?php
    while(!$res->EOF){    
        echo "<div class='row'><span class='left'>".$res->fields['products_name']."</span><span class='rigth'>".$res->fields['products_id']."</span></div>";
        $res->MoveNext();
    }
?>
</div>
<!---------------库存警告 end-->

 将以上代码加入到后台目录的index.php文件中,即可

要计算库存数量为0的商品总数,需要使用到聚集函数count(),但是如果以上sql语句写成:

SELECT count('products_id') AS unit,products_id,products_name FROM ".TABLE_PRODUCTS_DESCRIPTION." WHERE products_id IN (SELECT products_id FROM ".TABLE_PRODUCTS ." WHERE products_quantity=0)

这样只能检索出一条结果,因为SELECT count() 仅对一个结果进行计数。

为了对每个结果进行都能进行count(*)计算,应该将count(*)作为子查询

posted @ 2012-04-25 22:31  曾是土木人  阅读(900)  评论(0)    收藏  举报