我的问题是,当我输入一个特定的国家名称时,例如:法国,它将输出数据库中的所有数据,而不仅仅是法国。我不知道哪里出了问题,可能很简单,但我什至不知道如何尝试解决问题,所以我来这里寻求帮助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的位置分开。这更符合现代编程标准。
- 2 回答
- 0 关注
- 136 浏览
添加回答
举报
0/150
提交
取消