2014-01-28 24 views
-1

我有一個包含幾列的表中有18行。我想從幾個不同的非連續行中提取數據,並在我的頁面的不同部分分別回顯它們。在表中選擇幾個不連續的行

例如,假設我想從column_1中選取記錄5,9和13,並將它們回顯到不同位置的頁面。我怎麼做到這一點?我需要每次執行一個查詢來檢索這些獨特的字段嗎?這是我到目前爲止的代碼:

// $database connect code, blah blah... 

$sql = "SELECT page_id FROM pages WHERE (not sure if something should go here)"; 
$query = mysqli_query($connect, $query); 
while ($row = mysqli_fetch_array($query)){ 

maybe some code here, not sure... 

}; 

這樣做與所有記錄在一個特定的列是很容易使用while循環,但是這不是我後。我認爲可能有一種方法來櫻桃選擇像$ fetchRow ['row'] ['row_number']的關聯數組的特定行,但似乎並不奏效。對每個獨特實例執行一個查詢似乎非常低效。

我熟悉如何從數據庫中檢索事物並將其顯示在頁面上。我是中級水平,但這讓我很難過。

任何想法?

謝謝。

+1

這是初學者,不是中級。查閱MySQL手冊以瞭解WHERE之後允許哪些語法。假設你用來區分行的列被稱爲id,你將把「WHERE id ='5'OR id ='9'或id = '13'」只拉那3條記錄。 – degenerate

+2

這些行之間的共同點是什麼?編號,價格,名稱,標題,標籤,名字等等。無論您需要進入WHERE子句的常用字段是什麼。像WHERE標題='aerosmith'... – Yani

回答

1

您將需要一個IN子句。

$sql = "SELECT page_id FROM pages WHERE column_1 IN (5, 9, 13)"; 

或者,如果你想與一個PHP數組,像這樣做:

$cols = array(5,9,13); 
$in_cols = implode(',', $cols); 
$sql = "SELECT page_id FROM pages WHERE column_1 IN ({$in_cols}})"; 

如果你要使用#2,請務必正確過濾/準備的聲明在執行之前。

+0

偉大的答案。正是我想要的 - 謝謝。 – gitlinggun

+0

沒問題。不要忘記接受。 :) – Samsquanch

0

我想你要找的是什麼data_seek

但是,因爲你只有18行...我會存儲所有的結果在一個陣列設置和使用這個數組來呼應行元素我想在頁面上。這樣你就沒有輸入補充代碼的開銷(最好的代碼是無代碼),並且不得不檢索你想要的特定行。此外,你會想要檢索其他記錄,那麼就不需要修改你的查詢。