使用php中的搜索框过滤表格数据

时间:2014-04-29 20:49:28

标签: php html

我正在使用PHP创建一个Reminder系统。

我的PHP代码出错,希望有人能为我解决。好的,我首先要解释一下情况。我有两个表的数据库,一个包含用户信息,另一个包含事件信息。

活动信息表详情

eventid(int)10自动增量, 电子邮件(varchar)40 eventname(varchar)30 descryption(varchar)150 类别(varchar)10 日期(日期)

用户登录后,可以使用他的电子邮件地址添加活动。用户需要查看他们的活动。所以我创建了一个名为" userprofile"的PHP页面。当我访问" userprofile"它使用电子邮件过滤eventinfo表并返回用户事件。现在我想添加一个过滤器来过滤这些数据。但是,当我尝试使用搜索框过滤数据时,它会出错。 (错误是:mysql_real_escape_string()期望参数1为字符串)以下是代码

    <?php
    session_start();
    $email=$_SESSION['user'];


    mysql_connect("localhost","root","") or die(mysql_error()); 
    mysql_select_db("reminder") or die(mysql_error()); 

    $sql = "SELECT * FROM eventinfo WHERE email = '{$email}'";

    if(isset($_POST['search'])){

        $search_term = mysql_real_escape_string(['search_box']);

        $sql .= "WHERE eventname = '{$search_term}' ";
        $sql .= "or Category = '{$search_term}'";

    }

    $query = mysql_query($sql) or die(mysql_error());


?>

<form name="search_form" method="POST" action="userprofile.php">

search: <input type="text" name="search_box" value="" />
<input type="submit" name="search" value="search">
</form>


<table>
<table width"120%" cellpadding="10" cellspace="10">

    <td><Strong>Event Name</strong></td>
    <td><strong>Event Date</strong></td>
    <td><strong>Category</strong></td>
    <td><strong>Description</strong></td>



<tr>
</tr>
<?php while ($row = mysql_fetch_array($query)) { ?>
<tr>
    <td><?php echo $row ['eventname']; ?></td>
    <td><?php echo $row ['date']; ?></td>
    <td><?php echo $row ['Category']; ?></td>
    <td><?php echo $row ['descryption']; ?></td>

</td>
<?php } ?>


</table>

先谢谢

1 个答案:

答案 0 :(得分:0)

由于您没有回复评论框中的内容,因此您可能会收到实际“回答”的通知。

错误的原因和André所说的是,你给它一个列表而不是一个字符串,需要由$_POST指令处理。

变化:

$search_term = mysql_real_escape_string(['search_box']);

为:

$search_term = mysql_real_escape_string($_POST['search_box']);

<强>脚注:

mysql_*函数弃用通知:

http://www.php.net/manual/en/intro.mysql.php

从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqliPDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。

这些功能允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/

可以在»http://dev.mysql.com/doc/找到MySQL的文档。