【问题标题】:PHP Count array index and convert integer to stringPHP计数数组索引并将整数转换为字符串
【发布时间】:2015-12-11 22:15:28
【问题描述】:

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

感谢您的帮助!

【问题讨论】:

  • 谢谢,所以我必须使用 $result->fetch(PDO::FETCH_NUM); ?
  • 和 rows[0] .. 完整阅读..
  • 我把我的 foreach 设置为: foreach ($result as $row) { $task_count = count($row); //这里我计算行 $row = $result->fetch(PDO::FETCH_NUM);回声$行[0]; } 但我得到 24? 6 列 x 4 任务行
  • 不。我得到 24 的值,但我有 5 个任务和 8 个列,但不知道这 24 值来自哪里

标签: php mysql arrays pdo


【解决方案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();

【讨论】:

  • 非常感谢!有用!我不是 php 专家,而且很多时候制作了一个可爱的意大利面条代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
相关资源
最近更新 更多