2016-06-07 69 views
0
$sql = 'SELECT bind_id, Title, category, image_url, keyword, style_Binder_id, end_user_id, NULL AS cphoto_id, NULL AS cphoto, NULL AS title, NULL AS company_id, DATE FROM styleBinds 
UNION ALL 
SELECT NULL , NULL , NULL , NULL , keyword, style_Binder_id, end_user_id, cphoto_id, cphoto, title, company_id, date_time FROM company_photo 
ORDER BY DATE ASC'; 
$sql =$this->db->query($query); 
if($sql->num_rows > 0){ 
    $result=$sql->result(); 
    return $result; 
}else{ 
    echo "0 records"; 
} 

當我運行在phpMyAdmin此查詢其返回150個結果笨返回0的結果,當我使用UNION ALL查詢

但在codeignitor它返回0結果...

+0

嗯wy更奇怪刪除我的帖子,所以其他人有一些空間,希望張貼正確的解決方案。 – Swolschblauw

回答

0

簡單的拼寫錯誤的問題。你扭轉了論點和任務。 代碼應該是

$query=$this->db->query($sql); 

if($query->num_rows() > 0){ 
    return $query->result(); 
}else{ 
    return NULL; //controller should decide what to do with no model results 
} 
+0

同樣的問題@DFriend – user3176663

+0

發現語法問題,如果($ query-> num_rows> 0){'它應該是'if($ query-> num_rows()> 0){'我已經編輯了我的答案正確的語法。 – DFriend

0

試試這個:假設您已經DATE_TIME在您的申請表,我建議使用isnull,而不是null

SELECT bind_id, Title, category, image_url, keyword, style_Binder_id, end_user_id, NULL AS cphoto_id, NULL AS cphoto, NULL AS title, NULL AS company_id,date_time FROM styleBinds 
UNION ALL 
SELECT NULL as bind_id , NULL as Title , NULL as category , NULL as image_url,keyword, style_Binder_id, end_user_id, cphoto_id, cphoto, title, company_id, date_time FROM company_photo 
ORDER BY date_time ASC;