2013-03-22 91 views
0

我使用PHP,MYSQL和JQuery創建兩級下拉選擇框。一切似乎都很好,但是當我的父類別沒有孩子或者我沒有選擇孩子時,它給了我錯誤,我無法理解這個錯誤意味着什麼以及如何解決。我需要你的幫助。MySQL聲明:未定義索引:如何解決

錯誤: Notice: Undefined index: f_child_cat in C:\xampp\htdocs\pathtofile\index.php on line 58 You selected 12 & You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

這是我的前端代碼

<?php if(isset($_POST['submit'])){ 
    $drop = $_POST['first_child_cat']; 
    $f_child_cat = $_POST['f_child_cat']; 
    echo "You selected "; 
    echo $drop." & ".$f_child_cat; 

    $query = mysql_query("SELECT * FROM qa_categories WHERE parentid = $f_child_cat") 
       or die(mysql_error()); 

       echo '<ul>'; 
       while($cats = mysql_fetch_array($query)) 
        echo '<li>',$cats['title'],'</li>'; 

       echo '</ul>'; 
} 
?> 
+0

什麼錯誤,你在哪裏得到它? – Pete 2013-03-22 18:39:34

+0

對不起,我剛剛更新了問題。你能再請檢查一次。謝謝 – 2013-03-22 18:40:17

回答

1

這意味着$_POST['f_child_cat']未定義(不存在)。您應該使用綁定參數來防止SQL注入,並使用mysqli_PDO函數。

由於這是您的查詢的一部分,我建議你換你的查詢,像這樣:

if(isset($_POST['f_child_cat']) && !empty($_POST['f_child_cat'])) { 
    ... call db 
} 
else { 
    echo "You didn't select this" 
} 
+0

是的,我只理解,但不是如何解決這個錯誤?因爲這是一個可選的,並且如果具有類別,它將在下拉列表中可用,否則不會比用戶提交時出錯。另外,如果偶然的用戶不選擇第二級別的類別也會給出錯誤..如何解決? – 2013-03-22 18:41:36

+0

@pixelngrain您必須回答您希望代碼執行的問題,因爲如果它是作爲查詢的一部分發送的,則該代碼是空的。查看我的更新。 – Kermit 2013-03-22 18:42:37

+0

非常感謝您的支持,您和'Ibu'這兩個代碼都能正常工作..只是想知道哪個更好?還有一個快速相關的問題,如果兒童貓不存在數據庫比我怎麼不顯示第二個下拉? – 2013-03-22 18:48:37

1

$_POST['f_child_cat']如果該值是在使用前本第一未定義檢查。

$f_child_cat = isset($_POST['f_child_cat'])?$_POST['f_child_cat']:false; 

if ($f_child_cat){ 
    $f_child_cat = mysql_real_escape_string($f_child_cat); // always escape 

    /// your query. 
} 

注: mysql_ *函數depricated,使用的mysqli或PDO作爲替代。

+0

這是偉大的,但只是爲了理解是你的代碼更好或'波蘭王子'代碼。請不要誤會我的意思,但我不是那麼高手,所以試圖從你的專家那裏瞭解......因爲這兩個代碼都可以正常工作.. – 2013-03-22 18:46:35

+0

所有你需要做的就是**檢查**如果索引被定義,因此'isset($ _ POST ['f_child_cat'])'這將防止錯誤; – Ibu 2013-03-22 18:49:06

+0

@Ibu'$ _POST ['f_child_cat']'可以被定義,但可以是空的。 – Kermit 2013-03-22 18:51:37