我是PhP和MySQL的新手,现在无法显示某些记录。我有学生列表及其年级存储在数据库中的记录。我能够在网页中显示所有这些内容。现在我有一个文本框和一个按钮,我想要做的是当我在文本框中输入例如“1”并单击按钮时,我页面上显示的内容将是所有一年级学生的记录。< / p>
不知何故,我需要对其进行更改,以便在回发年份时更改sql以限制显示的信息。
我们非常感谢您对某些示例的任何建议或链接。这是我的代码。
<form name="form1" method="post" action="">
<div align="center">
<?php
include("dbcon.php");
$query="select * from student order by year, studname";
$result=@mysql_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 :(得分: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
时执行查询。也许你已经知道了这一切......或许我已经超越了自己。无论哪种方式,我都会停下来。 :)
答案 1 :(得分:0)
您可以在上找到有关Mysql select查询语法的更多信息 http://dev.mysql.com/doc/refman/5.1/en/select.html
在php-code中也不要使用@来抑制错误。因为它会减慢你的脚本。尝试手动处理这种情况。在这种情况下(@mysql_query($ query))它似乎无论如何都没有意义。