需要有关变量COUNT查询的帮助

时间:2015-05-15 03:09:33

标签: php mysql variables zend-framework count

我的模型中有以下功能。我有一个名为item_like的表。在该表中,我有两列 - saturn_1和like_id。当saturn_1等于'id'=>的值时,我想获得like_id的总数我的数组中的$ item-> id。我对编码很陌生,无法弄清楚出了什么问题。

Tx求助。

public static function formatCallbackChallenge($item, $template = 'challenges') {
    static $extensions = null;
    if($extensions === null) {
        $extensions = Extensions_Model_Front::getByMethod('item_list');
    }

    $item_title = (strlen($item->title) > 25) ? substr($item->title, 0, 25) . '...' : $item->title;

    $db = JO_Db::getDefaultAdapter();
    $total_likes = new JO_Db_Expr('(SELECT COUNT(like_id) FROM item_like WHERE item = $item->id LIMIT 1)');


    $data = array(
        'template' => $template,
        'sql_row' => isset($item->sql_row) ? $item->sql_row : null,,
        'id' => $item->id,
        'title' => $item_title,
        'total_likes' => $total_likes,
    );



    if($extensions) {
        $front = JO_Front::getInstance();
        foreach($extensions AS $id => $ext) {
            $data_ext = call_user_func(array($front->formatModuleName($ext . '_model_item'), 'listing'), $data, $item);
            if($data_ext && is_array($data_ext)) {
                $data = array_merge($data, $data_ext);
            }
        }
    }
    return $data;

}

1 个答案:

答案 0 :(得分:0)

我不知道您正在使用哪个数据库库,我假设查询运行但返回错误的数据...基于您正在寻找的内容我看到了两个错误...

  1. PHP错误,$ item-> id将不会在单引号PHP中解析。
  2. LIMIT 1是多余的,可能会导致问题。
  3. 将方法内的第9行重写为:

    $total_likes = new JO_Db_Expr("SELECT COUNT(like_id) FROM item_like WHERE item = {$item->id}");