我正在尝试构建一个简单的搜索,该搜索搜索数据库表中的Store_ID
列并从另一列打印相应的GoLive
日期,但具有 v.basic PHP 技能,我正在努力。
这是我正在使用的搜索代码:
<form name="search" method="get">
<input type="text" name="store_num"/> <br />
<input type="submit" value="submit" name="submit"/>
</form>
这是我尝试执行的MySQL查询:
$results = $wpdb->get_results("SELECT *
FROM wp_Table_GoLive_Date
WHERE Store_ID = 818");
foreach($results as $r) {
echo "<p><b>".$r->GoLive_Date."</b></p>";
}
我的问题是我的编码知识有限,我似乎无法将搜索的输入传递给 mysql。我需要有关获取搜索框输入数据(这将是商店编号)以发送到 mysql 查询以代替"818"的指导。
有什么想法吗?
附加信息:
数据库表有 3 列:
身份证Store_ID GoLive_Date
此查询的输出:
$results = $wpdb->get_results("SELECT * FROM wp_Table_GoLive_Date WHERE Store_ID = 818");
foreach($results as $r) {
echo "<p><b>".$r->GoLive_Date."</b></p>";
}
是GoLive_Date列中的相应日期:02/02/2015
来自
表单的值存储在名为 $_GET
的超全局数组中(如果POST
方法,则$_POST
)。您可以简单地访问该值,例如
echo $_GET['store_num'];
但是,如果您必须使用任何用户提供的数据库值,则必须格外小心,以避免让人们通过插入恶意代码来破坏您的数据库,这称为SQL注入。
你为此使用预准备的语句,WordPress提供了一个界面,让你轻松使用它们。在您的情况下,它会像
$results = $wpdb->get_results(
$wpdb->prepare("SELECT * FROM wp_Table_GoLive_Date WHERE Store_ID = %d",
array($_GET['store_num'])
));
解决方案是使用 isset 函数。
<?PHP
if((isset($_GET['submit'])){
$yourvariable= $_GET['store_num'];
//your query to execute
}
?>
<form name="search" method="get">
<input type="text" name="store_num" />
<input type="submit" name="submit" />
</form>
上述检查用户是否已提交表单,如果是,则运行查询,否则继续显示表单。