转换一个MySQL结果对象到关联阵列(笨)
我试图得到一个数据库查询是一个对象转换为一个关联数组,这样我可以在笨在日历类使用它。转换一个MySQL结果对象到关联阵列(笨)
这是我的模型:
<?php
class Get_diary_model extends Model {
function getAllDiaries($year,$month) {
$data = $this->db->query("SELECT day AND entry FROM diary WHERE month=$month AND year=$year"); // the entries for the relevant month and year
foreach($data->result_array() as $row) { // return result as assoc array to use in calendar
echo $row['day'];
echo $row['entry'];
}
return $data;
}
}
,这是错误我得到:
atal error: Cannot use object of type CI_DB_mysql_result as array in C:\wamp\www\mm\system\libraries\Calendar.php on line 219
任何想法?
检查瓯这个视频教程,它会帮助你 - >http://net.tutsplus.com/tutorials/php/codeigniter-from-scratch-the-calendar-library/
您的模型应该是这样的:
function getAllDiaries($year,$month)
{
$q = $this->db->query("SELECT day AND entry FROM diary WHERE month=$month AND year=$year");
if($q->num_rows() > 0):
foreach($q->result() as $row):
$data[] = $row;
endforeach;
return $data;
else:
return false;
endif;
}
和控制器:
function index($year = null, $month = null)
{
$this->load->model('Get_diary_model');
if (!$year) {
$year = date('Y');
}
if (!$month) {
$month = date('m');
}
$data['calendar'] = $this->Get_diary_model->getAllDiaries($year, $month);
}
问题不在使用result_array()的时候,更多的是你以后直接返回$ data。 $ query = $ this-> db-> query()然后在foreach中使用$ query-> result_array()。然后,您可以在foreach中构建它之后返回$ data。
对方回答是写下面的长篇大论方式:
function getAllDiaries($year,$month)
{
$sql = "SELECT day AND entry FROM diary WHERE month=$month AND year=$year";
return $this->db->query($sql)->result();
}
当然,这将返回对象的数组,而不是一个多维数组,但。
嗨菲尔感谢您的答复,我给了一个尝试,但它不完全符合我的要求我试图从数据库中获取'day'字段作为数组键,'entry ' 价值。到目前为止,没有运气。 – Robimp 2010-09-16 15:14:31
var_dump()就是这里的答案。每当你得到一个意想不到的结果,var_dump(),看看有什么,并相应地采取行动。要得到一个assoc数组,你正在使用正确的语法。这是在你的foreach或数组操作后来出错了。 – 2010-09-17 08:29:17
使用下面简单的方法,
$query = $this->db->get_where('table', array('table_id' => $id));
$queryArr = $query->result();
foreach ($queryArr[0] as $key=>$val)
{
$row[$key]=$val;
}
print_r($row); //this will give associative array
这里是笨-3
function getAllDiaries(){
$query = $this->db->query("YOUR QUERY HERE");
return $query->result('array');
}
OR
function getAllDiaries(){
return $this->db->query("YOUR QUERY HERE")->result('array');
}
注溶液:结果()函数接受“阵列“或”对象“作为参数。默认值是“对象”
完美!非常感谢,我的控制器与此类似,我只是无法弄清楚模型部分。将检查出来的视频,以及... – Robimp 2010-09-16 11:20:59
欢迎你:) – Christophe 2010-09-16 11:23:00
你可以投票了我的答案,以及:) – Christophe 2010-09-16 11:32:26