2010-08-27 68 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将一次一个地打印数组中的每一行,让您根据需要缩短或使用该数据。