尝试在视图中构建菜单。给我致命的错误/未定义的查询功能。数据库通过控制器结构中的load-> database()连接。不熟悉codeigniter数据库查询,但我认为常规的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>
答案 0 :(得分:0)
如果不指定列,则无法进行查询。您可能希望对所有列使用*
或col1, col2
SELECT [column list] FROM [table_name]
答案 1 :(得分:0)
你可以通过你的视图调用mysql。如果你仍然强加,这是不好的...但如果你想学习,我可以帮助你理解如何创建一个简单的方法来处理模型,查看和控制。
步骤1.控制器:
首先在控制器文件夹中创建一个名为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 */
第2步创建视图: 在应用程序文件夹中的视图文件夹中创建一个名为my_view.php的文件,并输入以下代码:
<html>
<head>
<title>My View</title>
</head>
<body>
<h1>Simple List Menu!</h1>
<ul>
<?php echo $list_menu; ?>
</ul>
</body>
</html>
步骤3.创建模型:
在模型文件夹中创建名为my_model.php的文件 并把这段代码:
<?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();
}
}
Cheerss .. 你必须读这个...... 它会引导你走向光明。所以你不再盲目了。 CI Documentation 注意:应用程序文件夹位于根文件夹中。你会看到的。如果不是那么不是代码忽略。 希望这会有所帮助。