2011-08-15 21 views
0

我是PhP和MySQL的新手,現在無法顯示某些記錄。我有記錄學生的列表和他們的年級存儲在數據庫中。我能夠在網頁中顯示所有這些內容。現在我有一個文本框和一個按鈕,我想要做的是當我在文本框中輸入例如「1」並單擊按鈕時,我的頁面上顯示的內容將僅爲所有第一年級學生的記錄。如何回發到數據庫?

不知怎的,我需要改變它,這樣當年份被髮回時,它會更改sql以限制顯示的信息。

任何建議或指向一些例子的鏈接將不勝感激。這是我的代碼。

<form name="form1" method="post" action=""> 
<div align="center"> 
<?php 
    include("dbcon.php"); 
    $query="select * from student order by year, studname"; 
    [email protected]_query($query) or die(mysql_error()); 
     if(mysql_num_rows($result)>0) 
     { 
?> 

    <label> 
    <input type="text" name="txtyear" id="txtyear"> 
    <input type="submit" name="btnyear" id="btnyear" value="Submit"> 
    </label> 
    <table width="75%" border="1"> 
     <tr> 
     <td align="center" width="20%"><strong>Student Number</strong></td> 
     <td align="center" width="27%"><strong>Name</strong></td> 
     <td align="center" width="23%"><strong>Course</strong></td> 
     <td align="center" width="30%"><strong>Year Level</strong></td> 
     </tr> 
<?php 
    while($row=mysql_fetch_array($result)) 
    {echo "<tr>"; 
    echo "<td>".$row['studno']."</td>"; 
    echo "<td>".$row['studname']."</td>"; 
    echo "<td>".$row['course']."</td>"; 
    echo "<td>".$row['year']."</td>"; 
    echo "</tr>"; 
    } 
?>  

    </table> 
<?php 
    } 
    else 
    echo "no records found"; 
?> 
</div> 
</form> 
+0

使用'LIMIT':'select * from student order by year,studname LIMIT x OFFSET y' –

回答

0

您需要一個WHERE條款。一個非常基本的示例可能如下所示:

$year = mysql_real_escape_string($_POST['year']); 
$query = SELECT * FROM student WHERE year = $year ORDER BY studname"; 

注意:請查看PHP MySQLi擴展。這些函數幾乎與他們的mysql相同,但有許多改進。

另外,您可能想要改進$_POST['year']字段的驗證。確保它是一個整數與is_int()不會是一個壞主意。您還可以使用(int)(如(int) $year = mysql_real_escape_string($_POST['year']);)對它進行類型轉換,然後在年份不是0時執行查詢。也許你已經知道所有這些......或許我已經超越了自己。無論哪種方式,我會停下來。 :)

+0

非常感謝您的回覆。我正在嘗試你剛剛給我的所有建議,並會在稍後讓你知道結果。 :-) – Tanya

0

您可以在 http://dev.mysql.com/doc/refman/5.1/en/select.html上找到關於Mysql select查詢語法的更多信息。

也不要在php代碼中使用@來抑制錯誤。因爲它會減慢你的腳本。嘗試手動處理這種情況。在這種情況下(@mysql_query($ query)),它似乎沒有任何意義。