如何为表中的所有查询创建动态php页面

时间:2014-01-23 05:32:56

标签: php mysql sql

我试图检索动态查询PHP页面。第一页通过post方法传递city或id下一页的值。

我知道这里sql注入可以完成。 但我在私人网络上使用它,并跟踪每个用户会话。 并且table1受到保护。

表格如下:

TABLE1

-----------------------------------------------------
1     select * from tablename1 where ID = $id
2     select * from tablename1 where city = $city
2     select * from tablename1 where ID = $id  and city = $city
-----------------------------------------------------

现在我运行包含代码的页面:

    $id = $_POST["id"];
    $city= $_POST["city"];
    $tabledata = mysql_query("SELECT * FROM table1 ");
    $a=mysql_fetch_row($tabledata );

    $query_table=$a['1']; // retrieve sql query from table1 which stored in 2nd column
    echo " $query_table"; // display query
    $result = mysql_query($query_table);

    while ($field = mysql_fetch_row( $result) )
    {
        echo "<td> $field[1] </td>";
    }

现在,问题在于我无法获得结果。 $result是空的吗?

如何通过$city$id值来查询?

但是,如果我从 TABKE1 中删除WHERE条件,那么效果会很好。那么,如何让WHERE条件传递参数呢?

我该怎么办?此处的任何其他选项可以在1个表上调用存储的查询,并在其他页面和其他表上进行处理

2 个答案:

答案 0 :(得分:0)

如果您想要带有ID或城市的结果

mysql_query("SELECT * FROM table1 WHERE ID = '$id' OR city = '$city'");

如果你想同时使用强制

mysql_query("SELECT * FROM table1 WHERE ID = '$id' AND city = '$city'");

答案 1 :(得分:0)

table1中的查询应该是这样的

-----------------------------------------------------
1     select * from tablename1 where ID = '".$id."'
2     select * from tablename1 where city = '".$city."'
3     select * from tablename1 where ID =  '".$id."'  and city =  '".$city."'
-----------------------------------------------------

继续进行编码,它会显示结果。

选项2:

表1:

-----------------------------------------------------
1     select * from tablename1 where ID =  
2     select * from tablename1 where city =  
-----------------------------------------------------

并改变像这样的PHP代码

$query_table=$a['1']." '".$id."'" ;

$query_table=$a['2']." '".$city."'" ;

选项3:

表1:

-----------------------------------------------------
1     select * from tablename1  

-----------------------------------------------------

并改变像这样的PHP代码

$query_table=$a['1']." where ID = '".$id."'" ;

$query_table=$a['1']." where ID = '".$id."' AND city = '".$city."' " ;