简单搜索搜索数据库表并在同一页面上显示结果(php / mysql)

时间:2014-12-15 12:57:17

标签: php mysql

我正在尝试构建一个简单的搜索,搜索数据库表中的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

2 个答案:

答案 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>

以上检查用户是否已提交表单,如果是,则运行查询,否则继续显示表单。