2011-08-15 6 views
0

私はPhPとMySQLが初めてで、特定のレコードの表示に問題があります。私は、学生とその年のレベルのレコードをデータベースに保存しています。私はそれらをすべてWebページに表示できました。 1つのテキストボックスと1つのボタンがあり、テキストボックスに「1」と入力してボタンをクリックすると、最初の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'を使用してください:年齢、スタッドネームからの選択* 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) $year = mysql_real_escape_string($_POST['year']);)のように型キャストして、年が0でない場合はクエリを実行することもできます。おそらくあなたはすでにこれすべてを知っているかもしれません...あるいは、おそらく私は自分自身より先んじています。いずれにせよ、私はやめます。 :)

+0

ありがとうございました。私はあなたが私に与えたすべての提案を試しており、結果を後で教えてくれるでしょう。 :-) – Tanya

0

http://dev.mysql.com/doc/refman/5.1/en/select.htmlで、Mysqlの選択クエリの構文の詳細を参照できます。

また、php-codeのエラー抑制のために@を使用しないでください。そのため、スクリプトが遅くなります。このような状況を手動で処理してください。この場合(@mysql_query($ query))とにかく意味がないようです。

関連する問題