2015-12-01 62 views
0

我有這個查詢。但是,它不能正常工作。該回波返回值始終爲1,但在我的SQL返回總是1

<?php 
include "db_connect.inc.php"; 

$sql = "SELECT COUNT(id) FROM profiles"; 

$res = mysqli_query($con, $sql); 

$num = mysqli_num_rows($res); 
if ($num == 0) 
    echo "0"; 

echo $num; 

mysqli_close($con); 
?> 
+2

'mysqli_num_rows'返回的行數結果集,而不是第一行中第一個字段的值。 – Vatev

+1

您的查詢返回** 1 **值爲** 3 **的行** – Alex

+0

因此,它只顯示一行,並沒有顯示計數的權利? –

回答

2

查詢返回一行值

要見你期望你所需要的是這樣的:

<?php 
    include "db_connect.inc.php"; 
    $sql = "SELECT COUNT(id) myCount FROM profiles"; 
    $res = mysqli_query($con, $sql); 
    if ($row = mysqli_fetch_array($res, MYSQLI_ASSOC)) { 
     echo $row['myCount']; 
    } else { 
     echo "0"; 
    } 
    mysqli_close($con); 
?> 
+0

感謝這工作正常 –

3

你做的彙總查詢的數據庫,這意味着你將永遠得到結果的一排3排 - 包含計數一行()值你要求。即使該計數()爲0,您仍然會得到一行結果。

如果要檢查計數的值,則必須提取該行並檢查該字段的值,例如,

$sql = "SELECT COUNT(id) AS cnt FROM profiles"; 
$result = mysqli_query($con, $sql) or die(mysqli_error($con)); 
$row = mysqli_fetch_assoc($result); 
if ($row['cnt'] == 0) { die("No profiles"); } 
+0

@alex:woops,謝謝。固定。 –