我从mysqli查询中获取了一个数组,该数组包含一个任务列表。我必须计算数组中有多少任务(因此只有行数),并将图标徽章作为人类可读数字。
try {
$db = new PDO("mysql:host=127.0.0.1;dbname=c9", "andreaem_dev", "");
//echo "Connected to database<br/>"; // check for connection
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$sql = "SELECT ID FROM data_tasks WHERE data_tasks . user = 'admin'"; //I'm selecting ID so only one element on the row is count
$result = $db->query($sql);
foreach ($result as $row) {
$row = $result->fetch(PDO::FETCH_NUM);
echo $row[0];
}
$db = null; // close the database connection
}
catch(PDOException $e) {
echo $e->getMessage();
}
使用此代码我得到一个int(2)响应,该数组包含5个元素,我不知道它在哪里'2',即使我必须将其转换为数字。
感谢您提供帮助!
答案 0 :(得分:1)
*sigh*
您需要在mysql中使用count()
函数。这就是数据库的工作方式:它们可以为您计算数据。你不需要手工计算。您不需要选择ID。你不需要循环结果。您不需要将数字转换为字符串。您只需要求数据库计数然后获得结果。
$db = new PDO("mysql:host=127.0.0.1;dbname=c9", "andreaem_dev", "");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT count(*) FROM data_tasks WHERE user = 'admin'";
$count = $db->query($sql)->fetchColumn();