我是网络开发的新手。我正在尝试使用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>"
也就是说,如何根据需要查询数据。
希望我能清楚地描述一下。感谢帮助。答案 0 :(得分:1)
试试这段代码: -
$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'];