Php mysql查询代码点火器出现致命错误

Php mysql查询代码点火器出现致命错误,php,mysql,codeigniter,Php,Mysql,Codeigniter,正在尝试在视图中构建菜单。给我致命错误/未定义的查询函数。数据库通过控制器构造中的load->database()连接到。不太熟悉codeigniter db查询,但我认为常规的mysqli可以正常工作。代码如下: <div class="at_mainMenu gradient02"> <ul class="sf-menu" id="example"> <?php $query = $this->db->query("SELECT *

正在尝试在视图中构建菜单。给我致命错误/未定义的查询函数。数据库通过控制器构造中的load->database()连接到。不太熟悉codeigniter db查询,但我认为常规的mysqli可以正常工作。代码如下:

<div class="at_mainMenu gradient02">
  <ul class="sf-menu" id="example">
  <?php
    $query = $this->db->query("SELECT * FROM menu WHERE priority=0");
    foreach ($query ->result_array() as $row) {
      echo "<li class='current'><a href='".$row['link']."'>".$row['text']."</a>";
      $id = $row['menuId'];
      $children = $this->db->query ("SELECT * FROM menu WHERE parentId=$id ORDER BY priority DESC");
        foreach ($children->result_array() as $row) {
          echo "<ul><li><a href='".$row['link']."'>".$row['text']."</a>";
            $id2 = $row['menuId'];
            $grandchildren = $this->db->query ("SELECT * FROM menu WHERE parentId=$id2 ORDER BY priority DESC");
            foreach ($grandchildren->result_array() as $row) {
              echo "<ul><li><a href='".$row['link']."'>".$row['text']."</a></li></ul>";
            }
          echo "</li></ul>"; 
        }
      echo "</li>";
    }
  ?>
  </ul>


如果不指定列,则无法进行查询。您可能希望对所有列使用
*
,或
col1、col2

SELECT [column list] FROM [table_name]

您可以通过视图调用mysql。如果你仍然强加。。。但是,如果您想学习,我可以帮助您理解如何创建一种使用模型、视图和控件的简单方法

第一步。控制器:

首先在控制器文件夹中创建一个名为my_controller.php的控制器, 并把这个代码:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

        class My_controller extends CI_Controller {

            public function __construct() 
            {
                parent::__construct(); 
                date_default_timezone_set('Asia/Bangkok');
                $this->load->model(array('my_model'));
                $this->load->database();
                $this->output->enable_profiler(TRUE);
            }

            public function index()
            {
                $result_query = $this->my_model->GetMenu();

                $data['list_menu'] = '';

                foreach ($result_query as $key => $value) {
                    $data['list_menu'] .= '<li>';
                    foreach ($value as $index => $item) {
                        $data['list_menu'] .= '[' . $index . '] = ' . $item . ', '; 
                    }
                    $data['list_menu'] .= '</li>';
                }

                $this->load->view('my_view', $data);

            }

        }

    /* End of file My_controller.php */
    /* Location: ./application/controllers/My_controller.php */
<html>
<head>
<title>My View</title>
</head>
<body>

    <h1>Simple List Menu!</h1>

    <ul>
        <?php echo $list_menu; ?>
    </ul>
</body>
</html>
<?php
class My_model extends CI_Model {

    function __construct()
    {
        $this->load->database();
    }

    function GetMenu()
    {
        $query = $this->db->get('Menu'); // where menu is your table name

        return $query->result_array();
    }

}


第三步。创建您的模型:

在模型文件夹中创建一个名为my_model.php的文件 并把这个代码:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

        class My_controller extends CI_Controller {

            public function __construct() 
            {
                parent::__construct(); 
                date_default_timezone_set('Asia/Bangkok');
                $this->load->model(array('my_model'));
                $this->load->database();
                $this->output->enable_profiler(TRUE);
            }

            public function index()
            {
                $result_query = $this->my_model->GetMenu();

                $data['list_menu'] = '';

                foreach ($result_query as $key => $value) {
                    $data['list_menu'] .= '<li>';
                    foreach ($value as $index => $item) {
                        $data['list_menu'] .= '[' . $index . '] = ' . $item . ', '; 
                    }
                    $data['list_menu'] .= '</li>';
                }

                $this->load->view('my_view', $data);

            }

        }

    /* End of file My_controller.php */
    /* Location: ./application/controllers/My_controller.php */
<html>
<head>
<title>My View</title>
</head>
<body>

    <h1>Simple List Menu!</h1>

    <ul>
        <?php echo $list_menu; ?>
    </ul>
</body>
</html>
<?php
class My_model extends CI_Model {

    function __construct()
    {
        $this->load->database();
    }

    function GetMenu()
    {
        $query = $this->db->get('Menu'); // where menu is your table name

        return $query->result_array();
    }

}

select what from menu?我认为您不知道如何正确使用CodeIgniter-请查看SQL中的
join
s或只是一般SQL语法:)添加了一个select*,不幸的是,相同的问题。第二个和第三个查询?已修复。谢谢,我是弱智。