【问题标题】:How to properly get the int for totalEntries in MySQL database using PHP?如何使用 PHP 正确获取 MySQL 数据库中 totalEntries 的 int?
【发布时间】:2019-09-21 05:01:04
【问题描述】:

我正在使用 PHP 和 MySQL 数据库来构建网站。

然而,与我之前学过的其他语言相比,我发现 PHP 相当糟糕。主要是因为我似乎在网上找到了很多超过 5 年的说明,但它们根本不起作用。

例如这里接受的答案:select count(*) from table of mysql in php

到目前为止,我有这段代码,但它给了我错误(未定义的索引 $recordCount = $row['totalEntries'];)。

// create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// check connection
if ($conn->connect_error) {
die("connection failed: " . $conn->connect_error);
}


$sql = "SELECT * FROM games ORDER BY id DESC LIMIT $startRow, $rowsPerPage";
$result = $conn->query($sql);

$sql = "SELECT COUNT(*) as totalEntries FROM games";
$results = $conn->query($sql);
$row = $result->fetch_assoc();
$recordCount = $row['totalEntries'];
echo "<br/> record count = " . $recordCount;



$totalPages = ceil($recordCount / $rowsPerPage);
$pagination = "<div class='pagination'>";

for ($i = 0; $i <= $totalPages; $i++) {
 $pagination .= "<a href='index.php?page=" . $i . "'>" . $i . "</a>";
echo 'wtf!';
}

$pagination .= "</div>";
echo ' <br/> pagination = ' . $pagination;

我也试过了:

  $recordCount = Count($row);

   $recordCount = Count($result->num_rows);

还有许多其他参数传递给 Count,但它们总是返回 1 或 7(这是 COLUMNS 的数量)

我想我发现 PHP 很难学,因为我没有一个好的 IDE 并且正在使用 Notepad++。谁能告诉我在完成上述代码中的 SELECT 语句后,我们如何获得表中所有条目的计数?

【问题讨论】:

  • 提示:运行查询时,请检查错误。此类做法与您使用的语言无关。
  • 好的,我已经多次更改了 SELECT 措辞,现在在代码中变得相当混乱。我还不得不更改连接和查询的方式,因为许多教程都是错误的。这可能就是我有错误的原因。我试过关注 w3 文档,但仍然找不到。那么你知道导致数组长度计数错误的错误究竟是什么(即始终为1)
  • 运行查询的方法以及基本上我在 PHP 中看到的所有内容都非常不雅,礼貌地说,我很难以任何有意义的方式调试错误
  • 如果你 print_r($row); 在 fetch 之后会显示什么?
  • 这看起来像是您的第一个查询的结果,而不是您想要计算条目数的第二个查询的结果。完全注释掉你的第一个查询,留下我建议的print_r,看看你得到了什么。

标签: php mysql sql pagination


【解决方案1】:
    $conn = new \mysqli('127.0.0.1', 'dev', 'SoMuchDev', 'test', '3306');
    $result = $conn->query('select * from test');
    while ($row = $result->fetch_assoc()) {
        $res[] = $row;
    }
    $res['total'] = $result->num_rows;
    echo "<pre>";
    var_export($res);die();

http://php.net/manual/en/class.mysqli-result.php

对于编辑器,PhpStorm 被广泛使用,但 afaik 只有 30 天的试用期。你也可以试试记事本++,我想它有一些用于自动完成的php插件,什么没有。

【讨论】:

  • 抱歉听起来如此咄咄逼人,我接受你所说的话,这肯定不会/不会帮助我的案子或增加我获得体面帮助的机会。还要感谢您的回答,它看起来与我现有的代码有点不同,所以我要离开并尝试将其调整到我的项目中。 ....另外我已经在使用 Notepad++ 并且没关系,我没有意识到我会搜索一些插件。可能也会检查 phpstorm,因为我认为我拥有的自动功能越多越好,因为我的基本思想已经变得依赖于 c# 和 java,这就是为什么我觉得 php 如此困难。谢谢
  • 有人在这里回答了它,我只需要改变一些东西(希望有一天它会帮助别人!):*.com/questions/51115033/…