如何使用PHP过滤MySQL数据库表中的数据

时间:2015-03-04 12:35:37

标签: php mysql database filter

我正在尝试编写一个搜索框,用于搜索数据库中的列。如果搜索与列匹配,则该记录将打印在下表中。

我正在搜索包含公司记录县的列。没有显示错误,但是当我搜索数据库中的某个县时,该表仍为空白。我无法理解我在理论上做错了什么我认为代码应该有效!任何帮助将不胜感激。

DBconnect.php

<?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的

        <?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>

4 个答案:

答案 0 :(得分:0)

你这里有一个错字

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

必须根据您的表格

$search_term = mysql_real_escape_string($_POST['search_box']);

答案 1 :(得分:0)

尝试:

            $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进行调试。

答案 2 :(得分:0)

搜索框值中有一个空格。

<input type="text" name="search_box" value=" "/>

如果由于某种原因这不是故意的并且它是用搜索短语提交的话,则可能导致搜索没有成功,这意味着如果您正在搜索&#34; Mercedes&#34;但是提交一个类似&#34;的空间梅赛德斯&#34;因为空间不合适。

您可以修剪search_term $search_term = trim($search_term),也可以从value=" "中删除该空格。

答案 3 :(得分:0)

这是您的代码$sql .= "WHERE MB_COUNTY = '{$search_term}' ";

正确的代码是$sql .= " WHERE MB_COUNTY = '{$search_term}' ";

**&#34;之间的空间和where where子句**