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


Simple search to search database table and display result on same page (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 列:

身份证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>

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