2011-12-21 65 views
0

我的數據庫表結構就像是以下幾點:如何查詢我的數據庫以獲得結果作爲數組?

wdt  date   teacherid 
1  2011-01-11   1001 
2  2011-01-11   1002 
3  2011-01-12   1001 
4  2011-01-12   1002 

現在我想要做的就是從表,其中teacherid =「1001」選擇日期字段,然後返回結果像這個 - 數組的數組( 「2011-01-11」,「2011-01-12」)

所以,我認爲,我的文件,如果可以在陣列中存在一個特定的數據檢查result-類似以下內容:

if (in_array("2011-05-18", $date))  // here the $date would be the array result which - 
             // I am expecting to get from model via controller 
     { 
     echo "Found"; 
     } 

我控制器如下所示:

function index(){ 


    $this->load->model('mod_teacher_workingday'); 
    $data['date']= $this->mod_teacher_workingday->get(); 

    $data['main_content']='view_teacher_workingday'; 
    $this->load->view('includes/template',$data); 
    } 

你能不能請我看看我的模型應該是什麼樣子才能在我的視圖文件中得到結果作爲數組,我可以檢查數組中是否存在特定的數據?爲了您的信息,我正在使用Codeigniter。

謝謝:)

+0

in_array可以/應該用array_flip替換&& isset – malletjo 2011-12-21 21:23:19

回答

2

應該是:

$query = $this->db->select('date') 
        ->from('teachers') 
        ->where('teacherid',1001) 
        ->get(); 
$dates = array(); 
foreach($query->result() as $date) 
{ 
    $dates[] = $date->date; 
} 
return $dates; 

返回的數組將是沒有發現的結果的情況下,只是空ID。

+0

嗨,謝謝你的回覆..我已經嘗試了你提到的方式,但是當我運行腳本時,我在「if(in_array(」2011-05-18「,$ date))中查找到錯誤。 「......消息說:」消息:in_array()[function.in-array]:錯誤的數據類型爲第二個參數「 – 2011-12-21 20:53:30

+0

UHm,我現在無法測試它,所以請var_dump()或print_r()返回數組看看它實際上看起來像 – 2011-12-21 21:12:55

+0

謝謝達米安Pirsy。我不得不做一個小小的改變,它的工作方式正是我想要的.. :)檢查你編碼的部分代碼.. :)謝謝你 – 2011-12-21 21:27:20

1

你爲什麼不找與MySQL的日期,更有效。

Select teacherid from teachers where date = "2011-05-18" AND teacherid = 1001 

如果你得到0的結果,你就知道該組合不存在

+0

其實如果我喜歡你提到的方式,我必須做365個不同的查詢,因爲我正在使用一個日曆。從數據庫中獲取所有信息..在我的視圖文件中,我只想檢查數組結果中是否存在特定的日期。如果存在,然後我問一個PHP腳本來檢查一個複選框。謝謝:) – 2011-12-21 20:57:09

0

幫你一個忙,下載一個支持數據庫的IDE。 Netbeans允許您通過JDBC驅動程序連接到數據庫。您可以在應用程序內部即時執行原始查詢。然後,一旦你有你的查詢釘,只需將其轉移到Codeigniter活動記錄或任何您正在使用或只使用活動記錄原始查詢。

相關問題