2017-05-21 73 views
1

我希望能夠在我的php代碼中使用選擇的值,但是每次我收到一條說明未定義索引分類的通知時,我做錯了什麼?我搜索了類似這樣的東西,他們都告訴我做我已經做的事情,有人可以幫忙嗎?未定義的索引html選擇

<select name="categorie" value="all"> 
        <option value="all">All</option> 
        <option value="action">Action</option> 
        <option value="romance">Romance</option> 
        <option value="comedy">Comedy</option> 
        <option value="drama">Drama</option> 
        <option value="horror">Horror</option> 
        <option value="fantasy">Fantasy</option> 
        <option value="scifi">Sci-fi</option> 
       </select> 
       <br> 
       <form method="post" action=""> 
       <input type="submit" value="Search" name="search"> 
       </form> 
       <?php 
       $db = new PDO('mysql:host=localhost;dbname=id1552202_accounts', 'id1552202_thecouch', 'Fargo123'); 
       if(isset($_POST['search'])){ 
        $categorie = $_POST['categorie']; 
        if($categorie === "all"){ 
         $all = $db->prepare("SELECT name, path FROM Reviews ORDER BY date"); 
      $all->execute(); 
     while($result = $all->fetch(PDO::FETCH_ASSOC)){ 
     echo $result['name']; 
      echo '<br>'; 
     echo $result['path']; 
     } 
        } else 

        $selectreview = $db->prepare("SELECT name, path FROM Reviews WHERE genre = :categorie ORDER BY date"); 
        $selectreview->bindParam("categorie", $categorie); 
      $selectreview->execute(); 
     while($result = $selectreview->fetch(PDO::FETCH_ASSOC)){ 
     echo $result['name']; 
      echo '<br>'; 
      echo '<br>'; 
     echo $result['path']; 
     } 
     } 

回答

1

地方<form>對HTML的頂部,爲我工作

<form method="post" action=""> 
    <select name="categorie"> 
    <option value="all">All</option> 
    <option value="action">Action</option> 
    <option value="romance">Romance</option> 
    <option value="comedy">Comedy</option> 
    <option value="drama">Drama</option> 
    <option value="horror">Horror</option> 
    <option value="fantasy">Fantasy</option> 
    <option value="scifi">Sci-fi</option> 
    </select> 
<input type="submit" value="Search" name="search"> 
</form> 
+0

是的,我已經做到了 –

+0

他已經做到了! – calexandre

+0

爲什麼要投票? – skunkhaze

2

您的類別沒有定義,那爲什麼您遇到的錯誤,你必須定義。在第一個條件內過濾得很好,但在else語句中需要改進。其他的一點是選擇外部表單:這樣,它永遠不會得到選擇的值,放在表單中,就像@addie所說的那樣。

   $selectreview = $db->prepare("SELECT name, path FROM Reviews WHERE genre = :categorie ORDER BY date"); 



       $selectreview->bindParam("categorie", $categorie); 



     $selectreview->execute(); 
    while($result = $selectreview->fetch(PDO::FETCH_ASSOC)){ 
    echo $result['name']; 
     echo '<br>'; 
     echo '<br>'; 
    echo $result['path']; 
    } 

我的建議是,在其他人,採取不帶評價categorie綁定,只需填寫您的前端用戶之前選擇一個過濾!

} else 

        $selectreview = $db->prepare("SELECT name, path FROM Reviews ORDER BY date, categorie"); 

      $selectreview->execute(); 
     while($result = $selectreview->fetch(PDO::FETCH_ASSOC)){ 
     echo $result['name']; 
      echo '<br>'; 
      echo '<br>'; 
     echo $result['path']; 
     } 
+0

但它不是定義如果isset? –

+0

是啊!其他條件是代碼無法運行。在提交表單之前,您正在綁定一個不存在的值。這是不對的。 – calexandre