1

您好,我即将编写聊天脚本。唯一剩下的就是将用户看到的消息数与数据库中的总数进行比较。现在以下行似乎不起作用,我已经盯着它看了一个小时,找不到原因。

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

当数据库中有 8 个条目在该“猫”下时,回显给我一个值“1”

4

3 回答 3

4

如下更改您的代码。

$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
于 2013-07-29T04:23:29.637 回答
3
$count = mysql_query('SELECT COUNT(id) as total FROM konsultaciq WHERE cat = "'.$_SESSION['key'].'" ');
$arr = mysql_fetch_array($count);
echo $arr['total'];

使用上面的代码。由于您没有通过 using 获取数据mysql_fetch_*,如果您将使用 count 函数,那么它将显示 1,因为它正在获取一行。

count函数用于计算PHP中数组中元素的数量,并且只有一个元素。

所以$arr['total']用来获取查询总计数的值。

注意: mysql_* 在 PHP 的最新版本中已被弃用。所以使用 mysqli_* 或 PDO。

于 2013-07-29T04:23:25.327 回答
3

应该使用 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();
于 2013-07-29T04:27:20.657 回答