PHP Count数组索引并将整数转换为字符串

时间:2015-09-15 15:18:00

标签: php mysql arrays pdo

我从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',即使我必须将其转换为数字。

感谢您提供帮助!

1 个答案:

答案 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();