【问题标题】:Function array not pulling back all rows from database函数数组没有从数据库中拉回所有行
【发布时间】:2012-03-22 16:44:35
【问题描述】:

我的数据库中目前有一个名为 category 的表

类别

catId 类别

  1. 新闻
  2. HTML
  3. PHP
  4. CSS

尝试从数据库中提取行仅使用以下代码返回 1 个结果

    private function navigation(){
        $url = BASE_URL;
        $dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
        if (!$dbc) {
            trigger_error('Could not connect to MySQL:' .mysqli_error());
        }
    $query = "SELECT catId, category AS 'catName' FROM category ORDER BY catName DESC";
        $result = mysqli_query($dbc, $query) or trigger_error("Query: $query\n<br>MySQL Error: ");
        while($row = mysqli_fetch_array($result)){
            $name = $row['catName'];
            $catId = $row['catId'];
            $this -> nav =<<<NAVIGATION
            <li>$name</li>
            <p>test</p>

NAVIGATION;
       }
    }

我尝试在函数之外执行此操作,并且所有行都恢复正常。

$querying = "SELECT catId, category AS 'catName' FROM category ORDER BY catName ASC";
        $results = mysqli_query($dbc, $querying) or trigger_error("Query: $query\n<br>MySQL Error: ");
        while($row = mysqli_fetch_array($results)){
            $name = $row['catName'];
            $catId = $row['catId'];

            $page->body ("$name");
        }

我想知道是否有人可以指导我哪里出错了。

提前谢谢你。

【问题讨论】:

  • 您在哪里期待多个结果? $this-&gt;nav$page-&gt;body 在每次迭代时都会被覆盖。

标签: php mysql mysqli


【解决方案1】:

在第一个代码中,您每次都将值分配给 $this -&gt; nav 变量,以便它为您提供 mysql 结果数组中的最后一个数据。 而且每次调用函数时都不是真正使用数据库连接。

【讨论】:

    【解决方案2】:

    我假设您想将每一行附加到前一行。试试

    $this -&gt; nav .= ...

    (点等于)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-14
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 2023-04-03
      • 2015-04-06
      • 2019-10-11
      相关资源
      最近更新 更多