我正在尝试从表中获取数据并将其存储在名为“items”的数组中,然后使用index访问它。我收到错误“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];
答案 0 :(得分: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];
答案 1 :(得分:4)
您在每次迭代时都在重新创建数组。结果数组(代码中的$items
)的初始化应该在循环之外。 E.g:
$items = array();
while($row = mysql_fetch_array($sqlquery, MYSQL_ASSOC))
{
$name = $row['name'];
$items[] = $name;
}
echo $items[0];
echo $items[1];
注意: mysql_*
函数已弃用,请使用mysqli_*
或PDO
。
答案 2 :(得分:2)
每次在循环内部重新声明你的数组是不正确的。
$items = array();
while($row = mysql_fetch_assoc($sqlquery))
{
$items[] = $name = $row['name'];
}
echo $items[0];
echo $items[1];
注意:Please, don't use mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。
答案 3 :(得分:0)
$i = 0;
在while循环之前添加$items = array();
,在循环
$i = 0;
$items = array();
while($row = mysql_fetch_assoc($sqlquery))
答案 4 :(得分: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
答案 5 :(得分:0)
将$items = array()
移出while循环。它被重新定义了多次,$item[0]
丢失了。您只获得结果数组中的最后一项。
答案 6 :(得分:0)
你不应该在循环中声明你的变量,如果你只是添加到单维数组,你可以让$ i关闭。
$items = array();
while($row = mysql_fetch_assoc($sqlquery))
{
$items[] = $row['name'];
}
print_r($items);
答案 7 :(得分:0)
漂亮干净的版本:
while($row = mysql_fetch_array($sqlquery))
{
$items[] = $row['name'];
}
echo $items[0];
echo $items[1];
答案 8 :(得分:0)
每次循环时都在初始化数组。
这样做:
<?php
$items = array();
while($row = mysql_fetch_array($sqlquery)) {
$name = $row['name'];
$items[] = $name;
}
echo $items[0];
echo $items[1];
?>