2015-05-15 22 views
0

我在模型中有以下功能。我有一個名爲item_like的表。在那張表中,我有兩列 - saturn_1和like_id。當我的數組中的saturn_1等於'id'=> $ item-> id的值時,我想獲得like_id的總數。我對編碼很陌生,無法弄清楚什麼是錯誤的。需要關於變量COUNT查詢的幫助

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; 

} 

回答

0

我不知道你正在使用的數據庫,圖書館,和我假設在查詢運行,但返回你在尋找什麼,因爲我看到兩個錯誤,錯誤的數據...基地。 。

  1. 一個PHP錯誤,$ item-> id不會在單引號PHP內被解析。
  2. 限制1是多餘的,可能會導致問題。

改寫9號線的方法裏面這樣的:

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

謝謝您的回答,弗蘭克。當我在第9行插入代碼時,頁面返回「[object Object]」。 ----我正在使用mysql。當我轉儲數據庫時,第一行說:MySQL dump 10.13 Distrib 5.1.71,用於redhat-linux-gnu(x86_64)。我認爲這意味着圖書館是紅帽?任何額外的幫助表示讚賞。 – ian

+0

這是一個javascript響應。返回的內容將是一個PHP對象或可能是一個數組,取決於庫如何處理它。對響應做一個var_dump(),你會看到你需要如何引用計數。 –

+0

謝謝弗蘭克。實際上,這都是在Ajax調用中,所以,是的,我認爲這應該是javascript的迴應。瞭解有關阿賈克斯計數的任何事情? – ian