输入PHP后过滤

时间:2016-12-20 05:49:55

标签: php sql

我是PHP的新手,我在两页上工作。 db中的表格如下:

CREATE TABLE tbl_module
(
    module_id int,
    module_name varchar(255)
);
INSERT INTO tbl_module
    (module_id, module_name) 
VALUES 
    (1,"001-erty"),
    (2,"002-yuio"),
    (3,"001-vbnm"),
    (4,"003-hjkl"),
    (5,"001-qwer"),
    (6,"001-dfgh");

首页只是这样:

<input type="text" name="module_name">
<input type="submit" name="btn_save" value="Save">
<?php 

    if (!empty(isset($_POST["btn_save"])))
    {

      $project_type = $_POST["project_type"];
      mysql_query ("INSERT INTO tbl_modules(module_name) VALUES('$module_name')"); 

  ?>

点击按钮后,我会看到第二页,我希望在这种输出中出现:

=============
HISTORY
-------------
001-erty
001-vbnm
001-qwer
001-dfgh

=============
RECENT INPUT
-------------
001-asdf

让我们假设我们最近的输入是&#39; 001-asdf&#39;。在HISTORY中,它仅显示与最近的模块匹配的模块。正如您在&#39; tbl_modules&#39;中看到的那样,模块不以&#39; 001 -...&#39;开头。没有出现在历史中。

我的问题是,我无法获得正确的查询,看起来就是这样。

2 个答案:

答案 0 :(得分:1)

使用PHP爆炸功能

简单地分割您最近的输入
$module_fname = explode('-',$module_name)[0];

然后

SELECT module_name FROM [tbl_module] WHERE module_name LIKE $module_fname.'%'

答案 1 :(得分:0)

不幸的是,由于我无法发表评论,我无法澄清你的期望。但是,我会回答我的理解。

您的表tbl_module没有自动增量字段。 如果包含它,可以有两个查询,我们可以用于您的方案。

&#34; SELECT project_name FROM tbl_module ORDER BY module_id LIMIT 10&#34; 。这里10表示您要在历史记录中显示的条目数。

至于最后一个&#34;最近的参赛作品&#34;是类似的东西,除了我们采用ORDER BY module_id DESC来获取最新的条目。

希望这会有所帮助。

编辑: - 我的第一个有一个轻微的错误,这是更新的: -

&#34; SELECT project_name FROM tbl_module ORDER BY module_id,project_name LIMIT 10&#34;