我正在尝试构建一个简单的搜索,搜索数据库表中的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列:
ID 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
答案 0 :(得分:3)
来自表单的值存储在名为$_GET
的超全局数组中(如果方法为$_POST
,则为POST
)。您可以简单地访问该值,如
echo $_GET['store_num'];
但是如果你必须使用任何用户提供的数据库值,你必须格外小心,以避免让人们通过插入恶意代码来破坏你的数据库,这称为SQL注入。
您使用prepared statements,WordPress provides an interface可让您轻松使用它们。在你的情况下,它会像
$results = $wpdb->get_results(
$wpdb->prepare("SELECT * FROM wp_Table_GoLive_Date WHERE Store_ID = %d",
array($_GET['store_num'])
));
答案 1 :(得分:1)
解决方案是使用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>
以上检查用户是否已提交表单,如果是,则运行查询,否则继续显示表单。