我有一个更复杂的问题,我试图解决,但这一切都归结为从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//
我不明白如何从这个循环中取出所有五个名字。我把它们放在一个数组中,但是当我从循环外部打印数组时,我得到的只是最后一条记录。如果我从Loop中打印数组,我会得到所有记录。
是否可以将值存储在循环中,将它们从循环中移出,然后在其他地方使用它们?
答案 0 :(得分:3)
你可以这样做:
$result = mysql_query("SELECT name FROM Names");
$dataset = array();
while ($data = mysql_fetch_array($result))
{
$dataset[] = $data;
}
然后您可以在循环外使用$dataset
...
答案 1 :(得分: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;
}
答案 2 :(得分: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 =
。
答案 3 :(得分:0)
您正在覆盖数组。每次循环执行时它都会覆盖该值,因此您只获得最后一个值。 尝试
$result = mysql_query("SELECT name FROM Names");
$i = 0;
while ($data = mysql_fetch_array($result))
$val = $data['name'];
$array1[$i] = $val;
$i++;
}