长期听众,第一次来电。
我正在尝试从其他发布的示例中学习,但它似乎并不适合我。 使用我发现的示例,我正在尝试创建一个4层级联下拉菜单。我的问题是菜单不会填充。我收到以下错误:
PHP警告:mysql_fetch_array()要求参数1为资源,布尔值在第36行的/home/mstarks/public_html/TEST/STUFF/ddmenu.php中给出
PHP警告:mysql_fetch_array()期望参数1为资源,第44行/home/mstarks/public_html/TEST/STUFF/ddmenu.php中给出布尔值
使用PhPAdmin可以正常运行所有查询。
以下是代码:
<script language=JavaScript>
function reload(form)
{
var selected_value=form.man.options[form.man.options.selectedIndex].value;
self.location='ddmenu.php?man=' + selected_value ;
}
</script>
<?php
@$man=$HTTP_GET_VARS['man'];
if(strlen($man) > 0 and !is_numeric($man))
{
echo "INVALID DATA.";
exit;
}
$divisions_query=mysql_query("SELECT DISTINCT division, division_id FROM employees_division ORDER BY division_id");
if(isset($man) and strlen($man) > 0)
{
$bureaus_query=mysql_query("SELECT DISTINCT bureau FROM employees_bureau WHERE division_id=$man ORDER BY bureau_id");
}
else
{
$bureaus_query=mysql_query("SELECT DISTINCT bureau FROM employees_bureau ORDER BY bureau_id");
}
echo "<form method=post name=f1 action='ddmenu2.php'>";
echo "<select name='man' onchange=\"reload(this.form)\"><option value=''>Select Division</option>";
while($qresult_divisions=mysql_fetch_array($divisions_query))
{
if($qresult_divisions['division_id']==@$man){echo "<option selected value='$qresult_divisions[division_id]'>$qresult_divisions[division]</option>"."<BR>";}
else{echo "<option value='$qresult_divisions[division_id]'>$qresult_divisions[division]</option>";}
}
echo "</select>";
echo "<select name='mod'><option value=''>Select Bureau</option>";
while($qresult_bureaus=mysql_fetch_array($bureaus_query))
{
echo "<option value='$qresult_bureaus[bureau]'>$qresult_bureaus[bureau]</option>";
}
echo "</select>";
echo "<input type=submit value=Submit>";
echo "</form>";
?>
如果有人能指出我正确的方向,我将非常感激。我仍然需要为此事添加两个下拉列表,然后找出如何将其添加到现有页面。
我已经看过使用AJAX的信息,但这是我的想法。我必须使用javascript和PHP。
如果我没有正确格式化这个问题,请原谅。这里的第一篇文章,我还没有完全弄明白。
答案 0 :(得分:0)
mysql_query
失败并返回FALSE。这会导致您的$divisions_query
变量设置为FALSE
,而不是您期望的数组。您得到的错误是因为mysql_fetch_array()
需要一个数组,而不是FALSE
。尝试使用这样的检查语句。
<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Invalid query: ' . mysql_error());
}
?>
更多信息,请参阅:http://www.php.net/mysql_query
祝你好运!