我是Web开发的新手。我正在尝试使用Apache + PHP + SQLite来实现数据库驱动的Web服务器。使用post方法,我尝试将html页上的输入值作为SQL查询传递给Web服务器,以检索数据库内部的数据。

问题描述:
假设我的数据库中有一个表(名为my_table),具有3列a1,a2和a3。在php文件中,最终用户指定了3个输入值,例如$ v1,$ v2和$ v3。 $ v1,$ v2和$ v3的值将与a1,a2和a3中的模式匹配,以便检索匹配的数据行。 $ v1,$ v2或$ v3可以为空字符串,具体取决于用户的查询。正式来说,如果$ v1 ='',$ v2 =''和$ v3 ='',则my_table中的所有数据都将被检索;如果$ v1 ='v1_value',$ v2 =''和$ v3 ='',则将检索a1列具有模式v1_value的数据。

我的HTML表单标签

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <table>
        <tr><td>Item1: </td><td><input type="text" name="v1"></td></tr>
        <tr><td>Item2: </td><td><input type="text" name="v2"></td></tr>
        <tr><td>Item3: </td><td><input type="text" name="v3"></td>
    </table>
    <input type="submit", name="submit" value="Submit">
</form>


我的PHP代码

$v1 = $_POST['v1'];
$v2 = $_POST['v2'];
$v3 = $_POST['v3'];


我被困在这里...

$query = "SELECT * FROM my_table WHERE <A_PROPER_CONDITION_STATEMENT>"


也就是说,如何进行查询以检索所需的数据。

希望我能清楚地描述。感谢帮助。

最佳答案

试试这个代码:-

$query = "SELECT * FROM my_table WHERE 1=1 ";

if(isset($_POST['v1']))
$query .=" and  a1=".$_POST['v1'];

if(isset($_POST['v2']))
$query .=" and  a2=".$_POST['v2'];

if(isset($_POST['v3']))
$query .=" and  a3=".$_POST['v3'];

10-07 12:22
查看更多