dtlh12053
2015-09-15 15:17
浏览 83
已采纳

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

I got an array taken from an mysqli query, this array contain a list of tasks. I must to count how many tasks is in the array ( so only the number of row ) and put in a icon badge as a human readable number.

     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();
}

With this code i get a int(2) response, the array contains 5 element and i don't know where it takes '2', even i must to convert it in a number.

Thanks in advice for help!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doushengyou2617 2015-09-15 15:52
    已采纳

    *sigh*

    You need to use count() function in mysql. this is how databases intended to work: they count your data for you. You don't need to count by hand. You don't need to select id. You don't need to loop over results. You don't need to convert number to string. You just have to ask database to count and then get the result.

    $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();
    
    已采纳该答案
    打赏 评论

相关推荐 更多相似问题