2010-08-27 60 views
4

我有一個查詢結果的數組:mysql_fetch_assoc獲取只有一個記錄

.....some code..... 
$result = mysql_query("SELECT * FROM vttest"); 
$row = mysql_fetch_assoc($result); 
print_r($row); 

但只打印一個記錄,我不能把$行中的循環,因爲我將在整理合作之後的那個變量。

Array 
(
    [id] => 3 
    [rep] => Mike 
    [name] => Joe 
    [department] => Business 
    [location] => Room 1 
    [email] => [email protected] 
    [phone] => 519-123-4567 
    [type] => Visit 
    [drink] => Coffee 
    [notes] => Some notes 
    [lastVisited] => 2010-08-27 
    [nextVisit] => 2010-08-27 
) 

我知道還有更多的記錄,我怎麼能打印所有它仍然可以使用$行變量?

+2

你的意思是「以後再對這個變量進行排序」和「使用$ row變量?」很有可能你可以在查詢級別處理排序,而不必擔心你的PHP代碼......有各種技術可用,但我不完全確定你想要完成什麼。 – Andrew 2010-08-27 19:03:59

+0

這實際上是另一個話題,爲什麼我不得不在查詢後進行排序,基本上我必須能夠使用$ data變量,這就是爲什麼如果我繼續提取數組,我不認爲我可以對它進行排序,所以我需要找到一種方法來顯示該$ row變量中的所有內容,而不必訴諸任何類型的提取循環。 – Mankind1023 2010-08-27 19:07:54

回答

11

你實際上得到一個記錄,因爲你需要使用一個循環來獲取所有的記錄:

$my_arary = array(); 
while($row = mysql_fetch_assoc($result)){ 
    $my_arary[] = $row; 
    print_r($row); 
} 

就像你說的,以後你可以用$my_arary做任何你喜歡的。

1

你需要把它放在一個循環中。然後,如果你需要在後面的變量工作,使用mysql_data_Seek重置內部結果的指針:

mysql_data_seek($result, 0); 
// your later code. 
2
$result = mysql_query("SELECT * FROM vttest"); 

$data = array(); 
while($row = mysql_fetch_assoc($result)){ 
    array_push($data, $row); 
} 
1

你幾乎擁有它,你需要使用一個循環來儘管這個結果讓每個行,當你這樣做時,將每行分配給一個表。

以下是你要找的東西。

$result = mysql_query("SELECT * FROM vttest"); 
while($row = mysql_fetch_assoc($result)){ 
    $rows[] = $row; 
} 

然後,您只需訪問該數組即可。

foreach($rows as $index => $value){ 
    print_r($value); 
} 

foreach將一次一個地打印數組中的每一行,讓您根據需要縮短或使用該數據。