簡體   English   中英

SELECT COUNT(id)沒有給我正確的值

[英]SELECT COUNT(id) doesn't give me the right value

你好,我正在寫聊天腳本的最后階段。 剩下的唯一一件事就是將用戶看到的信息與數據庫中的總數進行比較。 現在,以下一行似乎無效,並且我一直盯着它看了一個小時,找不到原因。

$count = mysql_query('SELECT COUNT(id) as total FROM konsultaciq WHERE cat = "'.$_SESSION['key'].'" ');
echo count(total);

當數據庫中有8個條目位於該“貓”下時,回聲給出的值為“ 1”

如下更改您的代碼。

$count = mysql_query('SELECT COUNT(id) as total FROM konsultaciq WHERE cat = "'.$_SESSION['key'].'" ');
$res=mysql_fetch_array($count);
echo $res[0]; // it gives actual value of total
$count = mysql_query('SELECT COUNT(id) as total FROM konsultaciq WHERE cat = "'.$_SESSION['key'].'" ');
$arr = mysql_fetch_array($count);
echo $arr['total'];

使用上面的代碼。 由於您尚未使用mysql_fetch_*來獲取數據,並且如果要使用count函數,則它將顯示1,因為它正在獲取一行。

count函數用於計算PHP中數組中的元素數,因此只有一個元素。

因此,請使用$arr['total']來獲取查詢總數的值。

注意:mysql_ *在PHP的最新版本中已被棄用。 因此,請使用mysqli_ *或PDO。

應該使用MySQL擴展。 這是一個使用PDO的示例

$pdo = new PDO('mysql:host=localhost;dbname=your_db_name;charset=utf8', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$stmt = $pdo->prepare('SELECT COUNT(1) FROM konsultaciq WHERE cat = ?');
$stmt->bindParam(1, $_SESSION['key']);
$stmt->execute();

echo $stmt->fetchColumn();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM