2013-03-05 59 views
0

如何计算我创建的mysql中的行数。如何计算我创建的mysql中的行数

这是我的发言

(
"SELECT COUNT(ct.title) 
FROM exp_channel_titles as ct 
LEFT JOIN exp_channel_data as cd on (ct.entry_id = cd.entry_id) 
where ct.channel_id=1 
and ct.status= 'open' 
Group by ct.entry_id 
"); 

当我print_r的这一说法,它给了我这样的输出:

CI_DB_mysql_result Object ([conn_id] => Resource id #9 [result_id] => Resource id #173 [result_array] => Array () [result_object] => Array () [current_row] => 0 [num_rows] => 135 [row_data] =>) 

但我只想数量135出

我就是这样尝试过,但我不工作,我不明白为什么?

$result = mysql_query($resultsofRestaurants); 
$count = mysql_fetch_array($result); 
print_r($count); 

我在做什么错?

+0

你运行在phpMyAdmin或您的其他SQL客户端查询时得到了什么? – lvil 2013-03-05 12:58:35

+0

刚刚更新了我的问题:D – Zaz 2013-03-05 13:02:27

+0

这不能是真正的代码。传统的弃用扩展不会生成类“CI_DB_mysql_result”的对象。你使用CodeIgniter或类似的东西? – 2013-03-05 13:12:52

回答

0

你现在正在做的是你正在计数ct.entry_id这将给你至少1每行的价值。您需要计数cd.entry_id而不是ct.entry_id

SELECT COUNT(cd.entry_id) 
FROM exp_channel_titles as ct 
     LEFT JOIN exp_channel_data as cd 
      ON ct.entry_id = cd.entry_id 
WHERE ct.channel_id=1 AND 
     ct.status= 'open' 
GROUP BY ct.entry_id 
+0

刚刚更新了我的问题:D – Zaz 2013-03-05 13:03:02

0

这将100%工作

$rows= mysql_num_rows(mysql_query("YOUR SQL QUERY"));