如何回发到数据库?

时间:2011-08-15 14:41:03

标签: php mysql

我是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>

2 个答案:

答案 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))它似乎无论如何都没有意义。