MySQL(i?)过滤现有查询

时间:2015-05-28 07:15:38

标签: php mysql filter

我想创建一个过滤器,用于过滤数据库中的输出。我不知道如何创建它。我搜索了一些其他主题,但它们没有那么有用,希望有人可以帮助我。

我有以下代码从数据库中检索信息并将其输入表中。 (请忽略表格设置等,仍然需要清理嵌套和东西..)

代码(retrieve.php):

user_avgfrequency <- user_avgfrequency[order(user_avgfrequency[,1]), ]

// OUDE LOOP SPACE

<?php
// Connect to database server
mysql_connect("xx", "xx", "xx") or die (mysql_error ());

// Select database
mysql_select_db("xx") or die(mysql_error());

// SQL query
$strSQL = "SELECT * FROM informatie ORDER BY id DESC;";

// Execute the query (the recordset $rs contains the result)
$rs = mysql_query($strSQL);

&GT;

感谢您帮助我!

2 个答案:

答案 0 :(得分:2)

您可以使用动态生成的where子句,如下所示

    $where = ' 1=1 ';
    if(isset($_REQUEST['param1']))
    {
        $where .= " and db_field1 = ".mysql_real_escape_string($_REQUEST['param1']);
    }
    if(isset($_REQUEST['param2']))
    {
       $where .= " and db_field2 = ".mysql_real_escape_string($_REQUEST['param2']);
    }
    $strSQL = "SELECT * FROM informatie ".$where." ORDER BY id DESC;"; 

这里mysql_real_escape_string将避免mysql注入。

希望这会对你有所帮助。

答案 1 :(得分:1)

对于过滤,大多数情况下您可以使用数据库。 现在你的SQL语句是这样的:

$strSQL = "SELECT * FROM informatie ORDER BY id DESC;";

要过滤表informatie中的信息,您应该更改SQL语句,例如:

$strSQL = "SELECT * FROM informatie WHERE `eventviewer_nagekeken` = 1 ORDER BY id DESC;"; 

这将返回eventviewer_nagekeken等于1的所有行。这样,您就可以从informatie表中的数据池创建各种输出。 有关文档和示例,请参阅docs