[英]Pass mysql_query results to foreach
我使用以下代碼來獲取用戶Facebook朋友列表,並在應用程序數據庫中對照用戶對其進行檢查。 此代碼將返回該應用程序的用戶,即該用戶的Facebook朋友。
$friends_set = '(';
foreach($friends["data"] as $value) {
$friends_set .= $value['id'].',';
}
$new_set = preg_replace('/,$/',')',$friends_set);
$res = mysql_query("SELECT * from user AS u, upload AS up WHERE u.fb_id IN $new_set AND u.fb_id=up.user_id") or die(mysql_error());
while($row = mysql_fetch_array($res)) {
echo $row['fb_id']. "". $row['first_name'];
echo "<br>";
}
$data['top_friends']=$res;
$this->load->view('myview');
此代碼有效。 它在我的codeigniter應用程序的控制器中,並且成功地將正確的數據回顯到頁面上。
但是,現在我需要為視圖中的每個語句在a中打印查詢結果,如下所示:
<?php foreach ($top_friends as $me) : ?>
<div >
<p><?php echo $me['first_name']; ?></p>
<?php endforeach; ?>
但是,當我嘗試使用分別在視圖中獲取查詢結果時,它不起作用。
我該如何解決?
您可以嘗試使用codeignitor的方法,創建一個模型函數,例如get_top_friends
,我假設您將逗號分隔的字符串作為參數傳遞,例如$ fb_id = '45,65,78,89'。 說出facebook_model
是模型的名稱,然后:
class Facebook_model extends CI_Model{
//other functions and constrcutor here
//function to get the top friends
function get_top_friends($fb_id){
$fbId = explode(",",$fb_id)
$this->db->select('*');
$this->db->where_in('fb_id',$fbId);
$this->db->order_by('points','desc');
$this->db->limit(10);
$query = $this->db->get('user');
if ($query->num_rows() < 1) return FALSE;
return $query->result_array();
}
}
並如下更改代碼:
$friends_set = '';
foreach($friends["data"] as $value) {
$friends_set .= $value['id'].',';
}
$new_set = preg_replace('/,$/',')',$friends_set);
$res = $this->facebook_model->get_top_friends($new_set);
$data['top_friends']=$res;
$this->load->view('myview',$data);
現在,您可以嘗試
foreach ($top_friends as $me){
echo $me['first_name'];
}
[為用戶更新]
如果您要按照自己的問題進行操作:那么請嘗試,
$result = array();
while($row = mysql_fetch_array($res)) {
$result[] = $row;
}
$data['top_friends']=$result;
$this->load->view('myview',$data);//pass data to view
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.