2013-12-18 64 views
0

長時間偵聽器,首次調用者。下拉字段不會填充

我試圖從其他發佈的例子中學習,但它似乎沒有爲我工作。 使用我發現的例子,我試圖創建一個4層級聯下拉菜單。我的問題是,菜單不會填充。我收到以下錯誤:

PHP的警告:mysql_fetch_array()預計參數1是資源,布爾上線/home/mstarks/public_html/TEST/STUFF/ddmenu.php給出36

PHP的警告:mysql_fetch_array()預計參數1是資源,布爾線44

所有查詢的運行正常使用PhPAdmin在/home/mstarks/public_html/TEST/STUFF/ddmenu.php給出。

下面是代碼:

<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'][email protected]$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

什麼是'36'和'44'? –

+0

你真的應該切換到'mysqli',mysql已經過時 –

+0

你連接到MySQL數據庫嗎?如上所述,請看[MySQLi](http://www.php.net/mysqli),因爲MySQL現在已被棄用。 – Last1Here

回答

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

祝您好運!