在CodeIgniter中显示数据库表

时间:2013-02-25 00:33:48

标签: php mysql codeigniter

我正在尝试使用 CodeIgniter 显示表格。我做了一个函数来从一个表中选择所有数据,并在单击按钮时使用foreach循环显示它。我收到了这个错误:

Fatal error: Call to undefined method CI_DB_mysql_driver::result() in C:\Xampp\htdocs\Auction\application\models\bidding_model.php on line 47

这是我的控制器页面:

public function viewauction()
{
    $this->load->model('bidding_model');
    $data['query'] = $this->bidding_model->viewauction();   
    $this->load->view('auction_view', $data);
}

这是模型:

function viewauction()
{
    $query =  $this->db->select('products'); 
    return $query->result();
}

这是观点:

<tbody>
<?php foreach($query as $row): ?>
<tr>   
    <td><?php echo $row->product_id; ?></td>
    <td><?php echo $row->auction_id; ?></td>
    <td><?php echo $row->start_time; ?></td>
    <td><?php echo $row->end_time; ?></td>
</tr>
<?php endforeach; ?>
</tbody>

6 个答案:

答案 0 :(得分:3)

只需将模型方法代码更改为

即可
function viewauction()
{
    $query = $this->db->select('*')->from('products')->get();
    return $query->result();
}

希望这会有所帮助。谢谢!

答案 1 :(得分:0)

你必须使用get()

select()查询构建器用于选择表的列而不是表

例如

$query = $this->db->select(array('product_id','auction_id'))
                  ->get('products');
return $query->result();

如果你想选择所有你可以使用get only,

阅读更多内容 http://ellislab.com/codeigniter/user-guide/database/active_record.html#select

答案 2 :(得分:0)

你的问题在这里:

$query =  $this->db->select('products'); 
return $query->result() ;

$query->result()返回false可能是因为products表不存在。你必须使用get而不是select。

尝试:

$query =  $this->db->get('products'); 
return $query->result() ;

这可以让你开始

答案 3 :(得分:0)

$( "#slider-range" ).slider({
  orientation: "vertical",
  range: true,
  min: 1,
    max: 5,
    values: [2,4],
  slide: function( event, ui ) {
    $( "#amount" ).val( ui.values[ 0 ] + " - " + ui.values[ 1 ] ); 

    // Reset to previous colors (by removing .red class)
    $(".star-group").removeClass('red');

    // For each group of stars ...
    $(".star-group").each(function(){

        // ... check if the number of stars in this object is in the VALUES INTERVAL, then add class RED        
        if ($(this).find('i').length >= ui.values[0] && $(this).find('i').length <= ui.values[1]){
            $(this).addClass('red');
         }
     })
  }
});
$( "#amount" ).val( $( "#slider-range" ).slider( "values", 0 ) + " - " + $( "#slider-range" ).slider( "values", 1 ) );  

我希望上面的代码可以帮到你。

答案 4 :(得分:0)

实际上有一种更简单的方法。

你应该从它提供的框架功能中获得最多,

使用CodeIgniter的表库

$this->load->library('table'); // Loading the Table Library 

$query = $this->db->get('table_name'); // the MySQL table name to generate HTML table

echo $this->table->generate($query); // Render of your HTML table

如果您想要一些自定义内容,例如桌面或正文中的类或任何您需要的东西,您也可以修改HTML生成器的行为。

$this->table->set_template($template); // passing an array

加载表库后使用此行。使用下面文档链接中的密钥。

参考:CodeIgniter 3 Table Library - Official Docs

答案 5 :(得分:0)

function viewauction()
{
    $this->db->select('*'); 
    $this->db->from('tablename');
    $query = $this->db->get();
    return $query->result();
}

以上代码可以帮助您。