我的問題是,當我輸入一個特定的國家名稱時,例如:法國,它將輸出數據庫中的所有數據,而不僅僅是法國。我不知道哪里出了問題,可能很簡單,但我什至不知道如何嘗試解決問題,所以我來這里尋求幫助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 關注
- 174 瀏覽
添加回答
舉報
0/150
提交
取消