首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用PHP从MySQL数据库表中过滤数据

如何用PHP从MySQL数据库表中过滤数据
EN

Stack Overflow用户
提问于 2015-03-04 20:35:37
回答 4查看 22.1K关注 0票数 0

我正在尝试编码一个搜索框,将通过我的数据库中的列进行搜索。如果搜索与列匹配,则会在下表中打印该记录。

我正在搜索一个包含公司记录的县的列。没有显示任何错误,但是,当我在数据库中搜索某个县时,表仍然为空。从理论上讲,我看不出我做错了什么,我认为代码应该可以工作!任何帮助都将不胜感激。

DBconnect.php

代码语言:javascript
复制
<?php
// connect to the database
$db = 'stylecraft_dev';
$host = 'localhost';
$user = 'stylecraft_admin';
$password = '000000';

$dbConn = mysql_connect($host,$user,$password) or die("Failed to connect to database");
$result = mysql_select_db($db, $dbConn) or die("Failure selecting database");
?>

form.php

代码语言:javascript
复制
        <?php
            $sql = "SELECT * FROM member ";

            if (isset($_POST['search'])) {

                $search_term = mysql_real_escape_string($_POST['search-box']);

                $sql .= "WHERE MB_COUNTY = '{$search_term}' ";
            }

            $query = mysql_query($sql) or die(mysql_error());
            ?>

            <form name="search_form" method="POST" action="stockists.php">
            Search: <input type="text" name="search_box" value=" "/>
            <input type="submit" name="search" value="Search the stockists...">
            </form>

            <table width="70%" cellpadding="5" cellspace="5">

            <tr>
                <td><strong>Company Name</strong></td>
                <td><strong>Website</strong></td>
                <td><strong>Phone</strong></td>
                <td><strong>Address</strong></td>
            </tr>

            <?php while ($row = mysql_fetch_array($query)) {?>
            <tr>
                <td><?php echo $row['MB_COMPANY'];?></td>
                <td><?php echo $row['MB_MOBILE'];?></td>
                <td><?php echo $row['MB_PHONE'];?></td>
                <td><?php echo $row['MB_COUNTY'];?></td>
            </tr>

            <?php } ?>
            </table>
EN

回答 4

Stack Overflow用户

发布于 2015-03-04 20:39:18

尝试:

代码语言:javascript
复制
            $search_term = mysql_real_escape_string($_POST['search_box']);
            $sql .= "WHERE MB_COUNTY LIKE '%".$search_term."%'";

输入名称不匹配- search-boxsearch_box

$_POST['search-box']<input type="text" name="search_box" value=" "/>

您应该尝试回显$search_term$sql以进行调试。

票数 1
EN

Stack Overflow用户

发布于 2015-03-04 20:39:02

你这里有个打字错误

代码语言:javascript
复制
$search_term = mysql_real_escape_string($_POST['search-box']);

必须与您的表格一致

代码语言:javascript
复制
$search_term = mysql_real_escape_string($_POST['search_box']);
票数 0
EN

Stack Overflow用户

发布于 2017-10-14 13:23:19

搜索框值中有一个空格。

代码语言:javascript
复制
<input type="text" name="search_box" value=" "/>

如果出于某种原因,这不是故意的,并且它是与搜索短语一起提交的,那么它可能会导致搜索不成功,这意味着如果您正在搜索"Mercedes“,但提交时使用了像”Mercedes“这样的空格,则由于空格的原因,它不匹配。

您可以裁剪search_term $search_term = trim($search_term),也可以直接从value=" "中删除该空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28854671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档