Php mysql查询代码点火器出现致命错误
正在尝试在视图中构建菜单。给我致命错误/未定义的查询函数。数据库通过控制器构造中的load->database()连接到。不太熟悉codeigniter db查询,但我认为常规的mysqli可以正常工作。代码如下: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 *
<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*,不幸的是,相同的问题。第二个和第三个查询?已修复。谢谢,我是弱智。