函数数组不会从数据库中拉回所有行

时间:2012-03-22 16:44:36

标签: php mysql mysqli

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

类别

catId categoy

  1. 新闻
  2. HTML
  3. PHP
  4. CSS
  5. 尝试从数据库中撤回行仅使用以下代码返回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");
            }
    

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

    提前谢谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我认为你想要将每一行追加到前一行。尝试

$this -> nav .= ...

(点等于)