0

我有一个更复杂的问题要解决,但这一切都归结为从 while 循环中获取 mysql_fetch_array 值,因此我可以在其他地方使用这些值进行比较。

例如:

 $result = mysql_query("SELECT name FROM Names");
 while ($data = mysql_fetch_array($result))
 {
   $val = $data['name'];
   //let's say there are 5 names here//
   $array1 = array($val);
 }

 //now, I would like to use the five names outside of the loop//

我不明白如何从这个循环中得到所有五个名字。我将它们放在一个数组中,但是当我从循环外部打印数组时,我得到的只是最后一条记录。如果我从循环中打印数组,我会得到所有记录。

是否可以将值存储在循环中,将它们从循环中移出,然后在其他地方使用它们?

4

4 回答 4

3

你可以这样做:

 $result = mysql_query("SELECT name FROM Names");
 $dataset = array();
 while ($data = mysql_fetch_array($result))
 {
   $dataset[] = $data;
 }

$dataset然后你可以在循环外自由使用......

于 2012-04-09T08:47:55.300 回答
3
$array1 = array();
$result = mysql_query("SELECT name FROM Names");
while ($data = mysql_fetch_array($result)){
 $val = $data['name'];
  //let's say there are 5 names here//
  $array1[] = $val;
}
于 2012-04-09T08:48:09.747 回答
2

$array1每次都在循环中设置。您需要添加$val到数组中,而不是将数组设置为$val.

$result = mysql_query("SELECT name FROM Names");
while ($data = mysql_fetch_array($result))
{
    $val = $data['name'];
    $array1[] = array($val);
}

注意$array1[] =代替$array1 =

于 2012-04-09T08:47:30.670 回答
0

您正在覆盖数组。每次循环执行它都会覆盖该值,因此您只能获得最后一个值。尝试

$result = mysql_query("SELECT name FROM Names");
$i = 0;
while ($data = mysql_fetch_array($result))
$val = $data['name'];
$array1[$i] = $val;
$i++;
}
于 2012-04-09T08:47:46.290 回答