你好我有一个Undefined Offset 0。在这段代码里面。
$q = mysql_query("SELECT * FROM category");
if (false === $q) {
echo mysql_error();
}
while ($r = mysql_fetch_row($q)) {
$names[$r[0]] = $r[2];
$children[$r[0]][] = $r[1];
}
function render_select($root=0, $level=-1) {
global $names, $children;
if ($root != 0)
echo '<option>' . strrep(' ', $level) . $names[$root] . '</option>';
foreach ($children[$root] as $child)
render_select($child, $level+1);
}
echo '<select>';
render_select();
echo '</select>';
错误的确切行:
foreach ($children[$root] as $child)
render_select($child, $level+1);
这是针对具有树格式的选择框,我在此问题中找到了此代码
答案 0 :(得分:1)
您的代码存在一些歧义:
if ($root != 0)
echo '<option>' . strrep(' ', $level) . $names[$root] . '</option>';
foreach ($children[$root] as $child)
render_select($child, $level+1);
如果您仅在$root != 0
时尝试执行这三行,则需要添加如下大括号:
if ($root != 0)
{
echo '<option>' . strrep(' ', $level) . $names[$root] . '</option>';
foreach ($children[$root] as $child)
{
render_select($child, $level+1);
}
}
否则,在没有参数(或第一个参数值为'0')的情况下调用render_select
时,您将尝试访问数组键'0'处的$ children元素。如您的错误所示,$ children不包含该键的值。