2011-12-28 85 views
-1

我有代碼,我必須顯示我的數據庫的內容。我有一個性別下拉列表。如果用戶選擇任何一種性別,它將在他們選擇的內容中顯示具有相同值的記錄。結果爲表格形式:下拉列表錯誤

這是我的代碼。

<html> 
     <h1> Student Search </h1> 

      <body> 
       <table border="1" width="500"> 
        <form name="StudentSearch" action="search.php" method="get"> 

       <table border="1"> 
       <h3> Filter </h3> 
       <h3> Gender </h3> 
        <select name="gender"> 
        <option value="">. . .</option> 
        <option value="Female">Female</option> 
        <option value="Male">Male</option><br/ ><br/ ><br/ ><br/ > 
        <input type="submit" value="submit" name="submit" /> 
        </select> 
       </table> 

    <br/ > 
    <br/ > 
    <br/ > 
    <br/ > 
        <h3> Result </h3> 
       <table border="1"> 
       <tr> 
        <th> Lastname </th> 
        <th> Firstname </th> 
        <th> Middlename </th> 
        <th> Gender </th> 
       </tr> 
       <tr> 
        <td> 
        <?php 
         mysql_connect("localhost", "root", "password") or die (mysql_error()); 

         mysql_select_db("PUP") or die(mysql_error()); 

         $strSQL = "SELECT lastname, firstname, middlename, gender FROM people WHERE gender=" . $_GET["gender"]; 
         $rs = mysql_query($strSQL); 

         $i = 1; 
         while($row = mysql_fetch_array($rs)) { 
         echo "<dt> </dt><dd>" . si . " " . $row["lastname"] . " " . $row["firstname"] . " " . $row["middlename"] . " " . $row["gender"] . "</dd>"; 
         $i++; 
         } 
        ?> 

        </td> 
       </tr> 
       </table> 
       </table> 

      </body> 
    </html> 

我在做什麼錯?

+0

究竟是什麼確切的問題? 「如果他們選擇任何一種性別,它將在他們選擇的內容中顯示具有相同價值的記錄。」聽起來像一切都按預期工作 - 我錯誤地認爲,「當選擇性別時,你看到那些性別的人」?有一個你得到的輸出和你期望的結果的例子會很棒。 – codeling 2011-12-28 08:59:39

+0

是的,當有人選擇性別時,它會顯示該性別的人的記錄。在我的代碼中它什麼也沒有顯示我期望看到的是一張有姓氏,姓名,中間名和性別列的表格。謝謝。 – 2011-12-28 09:23:22

+0

如果你在問題中說明它什麼都不顯示,那會非常有幫助!正如Prasad Rajapaksha在下面已經提出的那樣,在mysql_query調用之前嘗試執行「echo $ strSQL;」! – codeling 2011-12-28 09:26:05

回答

0

變化

<select name="gender"> 
       <option value="">. . .</option> 
       <option value="Female">Female</option> 
       <option value="Male">Male</option><br/ ><br/ ><br/ ><br/ > 
       <input type="submit" value="submit" name="submit" /> 
       </select> 

<select name="gender"> 
       <option value="">. . .</option> 
       <option value="Female">Female</option> 
       <option value="Male">Male</option> 
       </select> 
       <br/ ><br/ ><br/ ><br/ > 
       <input type="submit" value="submit" name="submit" /> 

因爲你關閉到早了,你裏面的一些<br />和一個提交按鈕,這是沒有任何有效的HTML。

0

我認爲你有兩個問題。

  1. HTML按鈕位於選擇內部。首先解決。

  2. 我覺得下面一行需要修改爲。

    $ strSQL =「選擇姓,名,中間名,性別FROM people WHERE gender ='」。 $ _GET [「性別」]。 「'」;

乾杯。

Prasad

+0

該代碼仍然有錯誤。它不顯示結果。我將在我的數據庫中獲取數據並將其放在一個表中。像這樣:|姓氏|姓名| | middelname |性別| ....值..... | gervacio | jeneca | parales |女| |它會分別顯示.... – 2011-12-28 08:57:08

+1

好極了。在行「$ rs = mysql_query($ strSQL);」之前加上「echo $ strSQL;」並複製查詢。在MySQL客戶端工具上執行它。看看你是否有預期的結果。 – 2011-12-28 08:59:56

0

您生產的HTML無效;嘗試在其上運行validator。 以下部分有換行符不允許放入一個選擇的問題,也沒有提交:

<select name="gender"> 
<option value="">. . .</option> 
<option value="Female">Female</option> 
<option value="Male">Male</option><br/ ><br/ ><br/ ><br/ > 
<input type="submit" value="submit" name="submit" /> 
</select> 

你應該重寫這

<select name="gender"> 
<option value="">. . .</option> 
<option value="Female">Female</option> 
<option value="Male">Male</option> 
</select> 
<br/ ><br/ ><br/ ><br/ > 
<input type="submit" value="submit" name="submit" /> 

這也是無效的直接有內容表裏面,就像你在這裏做什麼:

<table border="1"> 
<h3> Filter </h3> 
<!-- ...other stuff --> 
</table> 

你必須先打開一個錶行和單元格,像這樣:

<table border="1"> 
    <tr> 
    <td> 
     <h3> Filter </h3> 
     <!-- ...other stuff --> 
    </td> 
    </tr> 
</table> 

驗證器應該告訴你所有這些,以及更多。

+0

有什麼不對的我的PHP代碼?它仍然沒有顯示結果? – 2011-12-28 08:58:26

+0

@ akien_ghie09:我們必須知道更多的東西(例如表結構,預期的結果是什麼)來說出任何關於它的東西!例如什麼是性別列的類型? – codeling 2011-12-28 09:03:30

+0

Ahhm。我想從我的數據庫中獲取數據並以表格的形式顯示。像這樣:|姓氏|姓名| | middelname |性別| ....它會顯示..... | gervacio | jeneca | parales |女| | ....分別...它像之前它可以顯示結果,我必須先選擇什麼是性別然後,它會顯示所有的記錄是女性,如果我選擇女性和男性,如果我選擇男性。 – 2011-12-28 09:11:51