PHP网站搜索

时间:2018-03-14 13:57:01

标签: php html mysql sql html5

我无法让我的php搜索项目正常工作,遵循指南,我不完全理解指南/代码。我的搜索栏将允许我搜索数据库中的作业,但目前它显示所有作业并过滤您搜索的作业。

是否可以将这些作业显示为链接,将您带到另一页并显示当前所选作业。

这是我目前的代码:

<?php
    require 'config.php';
    if(isset($_POST['search']))
    {
        $valueToSearch = $_POST['valueToSearch'];
        // search in all table columns
        // using concat mysql function
        $query = "SELECT * FROM `job` WHERE CONCAT(`location`, `description`, `budget`, `duedate`,`title`) LIKE '%".$valueToSearch."%'";
        $search_result = filterTable($query);

    }
     else {
        $query = "SELECT * FROM `job`";
        $search_result = filterTable($query);
    }

    // function to connect and execute the query
    function filterTable($query)
    {
        $conn = mysqli_connect("localhost", "root", "", "bid4myjob");
        $filter_Result = mysqli_query($conn, $query);
        return $filter_Result;
    }

    ?>

    <!DOCTYPE html>
    <html>
        <head>
            <title>PHP HTML TABLE DATA SEARCH</title>
            <style>
                table,tr,th,td
                {
                    border: 1px solid black;
                }
            </style>
        </head>
        <body>

            <form action="php_html_table_data_filter.php" method="post">
                <input type="text" name="valueToSearch" placeholder="Value To Search"><br><br>
                <input type="submit" name="submit" value="Search"><br><br>

                 <table>
                    <tr>
                        <th>Title</th>
                        <th>Location</th>
                        <th>Description</th>
                        <th>Budget</th>
                        <th>Due date</th>
                    </tr>

          <!-- populate table from mysql database -->
                    <?php while($row = mysqli_fetch_array($search_result)):?>
                    <tr>
                        <td><?php echo $row['title'];?></td>
                        <td><?php echo $row['location'];?></td>
                        <td><?php echo $row['description'];?></td>
                        <td><?php echo $row['budget'];?></td>
                        <td><?php echo $row['duedate'];?></td>
                    </tr>
                    <?php endwhile;?>
                </table>
            </form>

        </body>
    </html>

1 个答案:

答案 0 :(得分:0)

你的问题就在这一行:

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

没有变量称为&#34;搜索&#34;这将由您的表单提交,因此永远不会设置其值,并且永远不会输入此if块。我怀疑你已经混淆了这个名字&#34;确定POST数组中变量名称的属性及其值(&#34;搜索&#34;,如果是按钮)。试试

if(isset($_POST['submit']))

代替。

另请参阅我上面关于您的安全问题的评论,并着眼于解决这些问题。