搜索栏无法正常运行

我的问题是,当我输入一个特定的国家名称时,例如:法国,它将输出数据库中的所有数据,而不仅仅是法国。我不知道哪里出了问题,可能很简单,但我什至不知道如何尝试解决问题,所以我来这里寻求帮助


if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $country = $_POST['country'];

    $_SESSION['country'] = $country;


    $sqlQuery = "SELECT * FROM campsites WHERE country LIKE '%$country%'";

    $result = $campDataSet->fetchAllCamps($sqlQuery);

    //var_dump($result);


    if (count($result) > 0) {

        echo'<div class="table-responsive">

                <table class="table">

                    <thead id="table1Head">

                    <tr><td>Name</td>

                        <td>Address</td>

                        <td>Postcode</td>

                        <td>Country</td>

                        <td>Latitude</td>

                        <td>Longitude</td>

                        <td>email</td>

                        <td>Phone<td>

                   </thead>

                    <tbody>


            </div>';

        foreach ($result as $row) {

            echo '<tr><td>' . $row->campsite_name . '</td> <td>' . $row->address . '</td> <td>' . $row->postcode . '</td> <td>' . $row->country. '</td> <td>' . $row->lattitude . '</td> <td>' . $row->longitude . '</td> <td>' . $row->email . '</td> <td>' . $row->phone_number . '</td></td></tr>';

        }

        echo "</tbody></table>";

    } else {

        print " 0 results";

    }

}

我的数据库类


class campDataSet

{

    public $dbHandle, $dbInstance;


    public function __construct()

    {

        $this->db = new campData();

        $this->conn = $this->db->getCampData();

    }


    public function fetchAllCamps()

    {

        //$sqlQuery = "SELECT campsites.id_campsite, campsites.campsite_name, campsites.address, campsites.postcode, campsites.country, campsites.lattitude, campsites.longitude, campsites.email, campsites.phone_number

        //         FROM sgb220_clientserver.campsites";


   

九州编程
浏览 137回答 2
2回答

倚天杖

您的问题是您正在运行一个查询,该查询仅获取所有营地,而不只是某个国家/地区的营地。您的fetchAllCamps()函数不接受任何参数。最好将查询移到fetchAllCamps()函数中,或者如果需要一个可以为您提供所有营地的功能,而不仅仅是在特定国家/地区的营地,则完全制作另一个功能。无需传递查询,只需传递$ country变量即可。在函数内部构建查询并运行它。这样,您就可以将所有SQL与构建HTML的位置分开。这更符合现代编程标准。
打开App,查看更多内容
随时随地看视频慕课网APP