为了账号安全,请及时绑定邮箱和手机立即绑定

搜索栏无法正常运行

搜索栏无法正常运行

PHP
九州编程 2021-05-01 14:12:01
我的问题是,当我输入一个特定的国家名称时,例如:法国,它将输出数据库中的所有数据,而不仅仅是法国。我不知道哪里出了问题,可能很简单,但我什至不知道如何尝试解决问题,所以我来这里寻求帮助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";   
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

您的问题是您正在运行一个查询,该查询仅获取所有营地,而不只是某个国家/地区的营地。您的fetchAllCamps()函数不接受任何参数。

最好将查询移到fetchAllCamps()函数中,或者如果需要一个可以为您提供所有营地的功能,而不仅仅是在特定国家/地区的营地,则完全制作另一个功能。无需传递查询,只需传递$ country变量即可。在函数内部构建查询并运行它。

这样,您就可以将所有SQL与构建HTML的位置分开。这更符合现代编程标准。


查看完整回答
反对 回复 2021-05-14
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信