mysql_fetch_assoc只获取一条记录

时间:2010-08-27 19:00:08

标签: php mysql

我有一个包含查询结果的数组:

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

但它只打印一条记录,我不能将$ row放在循环中,因为我将在稍后对该变量进行排序。

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

我知道有更多的记录,如何在仍然可以使用$ row变量的同时打印所有记录?

4 个答案:

答案 0 :(得分:13)

您实际上正在获取一条记录,因为您需要使用循环来获取所有记录。:

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

正如你所说,稍后你可以使用$my_arary做你喜欢的事。

答案 1 :(得分:2)

$result = mysql_query("SELECT * FROM vttest");

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

答案 2 :(得分:1)

你需要把它放在循环中。然后,如果您稍后需要处理该变量,请使用mysql_data_Seek重置内部结果指针:

 mysql_data_seek($result, 0);
 // your later code.

答案 3 :(得分:1)

你几乎拥有它,你需要使用一个循环来获取每一行的结果,并且当你这样做时,将每一行分配给一个表。

以下是您正在寻找的东西。

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

然后您需要做的就是访问该数组:

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

foreach将在您的阵列中一次打印一行,让您根据需要缩短或使用该数据。