0

我正在尝试从表中获取数据并将其存储在名为“items”的数组中,然后使用索引访问它。我收到一个错误 "Undefined offset: 0" 。代码有什么问题?

$i=0;

while($row = mysql_fetch_array($sqlquery))
{
    $name = $row['name'];

    $items = array();

    $items[$i] = $name;

    $i= $i +1;
}

echo $items[0];
echo $items[1];
4

9 回答 9

5

在循环之外定义$items,在循环之外定义$i = 0并更改为mysql_fetch_assoc并尝试。

$i = 0;
$items = array();
while($row = mysql_fetch_assoc($sqlquery)) {
    $name = $row['name'];

    $items[$i] = $name;
    $i++;
}
echo $items[0];
echo $items[1];
于 2013-03-22T12:06:20.483 回答
4

您在每次迭代时重新创建数组。结果数组的初始化($items在您的代码中)应该在循环之外。例如:

$items = array();

while($row = mysql_fetch_array($sqlquery, MYSQL_ASSOC))
{

    $name = $row['name'];

    $items[] = $name;
}
echo $items[0];

echo $items[1];

注意: mysql_*函数已弃用,请使用mysqli_*PDO

于 2013-03-22T12:05:24.263 回答
2

您每次在循环内都重新声明您的数组,这是不正确的。

$items = array();
while($row = mysql_fetch_assoc($sqlquery))
{
  $items[] = $name = $row['name'];
}
echo $items[0];
echo $items[1];

注意:请不要mysql_*在新代码中使用函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2013-03-22T12:05:49.077 回答
0
  1. $i = 0;在while循环之前添加
  2. 在while循环之前添加$items = array();,从while循环中删除它

     $i         = 0;
     $items = array();
     while($row = mysql_fetch_assoc($sqlquery))
    
于 2013-03-22T12:04:11.030 回答
0

用这个

while($row = mysql_fetch_array($sqlquery))

{

$name = $row['name'];

$items = array();

$items[] = $name;




}
if(isset($items[0])){

echo $items[0];
}

if(isset($items[1])){
echo $items[1];
}

无需使用 $i

于 2013-03-22T12:05:17.820 回答
0

移出$items = array()while 循环。它已被重新定义多次并且$item[0]丢失了。您只会得到结果数组中的最后一项。

于 2013-03-22T12:05:56.420 回答
0

你不应该在循环中声明你的变量,如果你只是添加到一维数组中,你可以关闭 $i 。

$items = array();

while($row = mysql_fetch_assoc($sqlquery))
{
    $items[] = $row['name'];
}

print_r($items);
于 2013-03-22T12:06:39.520 回答
0

漂亮干净的版本:

while($row = mysql_fetch_array($sqlquery))

{
   $items[] = $row['name'];

}


echo $items[0];
echo $items[1];
于 2013-03-22T12:07:08.147 回答
0

您每次都在循环中初始化数组。

这样做:

<?php
$items = array();
while($row = mysql_fetch_array($sqlquery)) {
    $name = $row['name'];
    $items[] = $name;
}
echo $items[0];
echo $items[1];
?>
于 2013-03-22T12:07:42.053 回答