2012-03-05 41 views
0

我需要選擇一個整列。 所以我的問題是如何獲得一整列?mysql選擇整列或循環遍歷所有ID

 $query = "SELECT * "; 
     $query .= "FROM employees "; 
     $query .= "WHERE id=*"; 
     $query .= "ORDER BY id ASC "; 

我試過ID = *,但沒有運氣... 我的目標是通過循環所有的ID,但有些可能會丟失,所以我想通我把它們放在一個數字或關聯數組和使用的foreach。如果有更好的方法,請分享。

編輯:

function get_all_ids() 
    { 
     global $connection; 
     $query = "SELECT * "; 
     $query .= "FROM employees "; 
     $query_result = mysql_query ($query , $connection); 
     confirm_query($query_result); 
     $query_result_array = mysql_fetch_assoc($query_result); 
     return $query_result_array; 
    } 

我使用它來打印陣列

$all_id = get_all_ids(); 
// preparing the table; 
    echo "<pre>"; 
    print_r($table); 
    print_r($all_id); 
    echo "</pre>"; 

,這是陣列

Array 
    (
     [id] => 1 
     [department_id] => 1 
     [name] => jordan 
     [EGN] => 9108121544 
     [email] => testEmail 
     [address] => testAddress 
     [country] => testCounty 
    ) 
+0

沒有運氣,那只是給了我第一排。 – Jordashiro 2012-03-05 17:06:44

+0

你確定數據庫中有多行嗎? – prodigitalson 2012-03-05 17:07:32

+0

是的,我會在一秒內更新我的問題。 – Jordashiro 2012-03-05 17:07:58

回答

3

如果有結果集中多行,你需要不斷獲取數據,直到所有的結果都檢索:

$q = mysql_query('SELECT * FROM `table`'); 
while (($row = mysql_fetch_assoc($q)) != FALSE) 
{ 
// Do something with *one* result 
} 
mysql_free_result($q); 

如果你想獲取所有的id在單個取,你可以這樣做:

$q = mysql_query('SELECT GROUP_CONCAT(`id`) AS `id_list` FROM `table`'); 
$row = mysql_fetch_assoc($q); 
mysql_free_result($q); 

$list_of_ids = explode(',', $row['id_list']); 

警告:GROUP_CONCAT()通常具有1024個字節的結果限制;這意味着你的結果將被截斷爲大型表格。您可以採用第一種解決方案,或者爲當前連接增加group_concat_max_len

+0

所以我得到行1,並把它們放在一個assoc數組基本上。我會在 – Jordashiro 2012-03-05 17:15:46

+0

...或 - 根據結果集的大小嚐試它 - 您可以使用第二種解決方案。 – 2012-03-05 17:17:24

+0

謝謝。這工作並返回所有ID。 – Jordashiro 2012-03-05 17:34:59

1

如果你想要的所有記錄,那麼你不需要一個WHERE條件。

1

也許你指的是簡單的:

SELECT id 
FROM employees 
ORDER BY id ASC 

如果只給你一個行,那麼無論你只有一個行或要添加LIMIT 1或PHP代碼確實通過所有的結果不循環,但只是顯示其中的第一個。請添加PHP代碼。

0

如果你想選擇一個列。然後不要使用「*」,爲了安全起見,用逗號分隔列名的名稱並用「`」(tick)引用。

$query = "SELECT `id` "; //if you only want to get ids from the table 
$query .= "FROM employees "; 
$query .= "WHERE id=*"; 
$query .= "ORDER BY id ASC ";