[英]Array to string conversion error in Codeigniter
我試圖顯示從數據庫到視圖的平均結果,但我不斷收到此錯誤:
遇到PHP錯誤
嚴重程度:注意
消息:數組到字符串的轉換
文件名:views / resultview.php
行號:38
這是來自控制器的代碼:
$average['avg'] = $this->quiz->getAverage($quizid);
$this->load->view('resultview',array('quiz' => $quiz,
'score' => $score,
'average_score' => $average));
該模型的功能如下:
function getAverage($quiz)
{
//get percentage from the database
$this->db->select_avg('score');
$this->db->where('id', $quiz);
$res = $this->db->get('userScoreQuiz');
if ($res->num_rows() != 1) {
// there should only be one row - anything else is an error
return false;
}
return $res->result_array();
}
從視圖來看,代碼是:
<h4> Avg. score on all previous attempts: <?php echo $average_score['avg'] ?> %</h4>
我無法找出原因。
謝謝您的幫助。
function getAverage($quiz)
{
//get percentage from the database
$this->db->select_avg('score');
$this->db->where('id', $quiz);
$res = $this->db->get('userScoreQuiz');
if ($res->num_rows() != 1) {
// there should only be one row - anything else is an error
return false;
}
return $res->row()->score;
}
來自docs :
$this->db->select_avg('age');
$query = $this->db->get('members'); // Produces: SELECT AVG(age) as age FROM members
您正在進行的代碼過多,這是一種優雅的解決方案:
function getAverage($quiz)
{
//get percentage from the database
$query = $this->db->select('AVG(score) as average_score')->from('userScoreQuiz')->where('id', $quiz)->get();
return $query->row()->average_score;
}
給你看
$data['quiz'] = //fill this area
$data['average_score'] = $this->quiz->getAverage($quizid);
$data['score'] = //fill this area
$this->load->view('resultview', $data);
他們將以$quiz, $average_score, $score
更換
echo $average_score['avg'];
至
print_r($average_score['avg'];
因為不是一個變量,而是數組的集合
codeigniter result_array()以數組形式返回數據。 並且數組索引從0索引開始。
“ $ average_score ['avg']”這應該是未定義的索引。 如果您不想更改函數,請嘗試以$ average_score ['avg'] [0] ['score']訪問結果數組。
如果要避免額外的數組索引,則使用row()而不是result_array()返回結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.