所以我正在創建一個條件表單,其中選項根據先前的選擇填充。例如,考慮一個基本示例:國家 = [列表]城鎮 = [列表]街道 = [列表]人們可能想查詢他們的數據庫以找到與所選國家相對應的所有城鎮。一旦選擇了一個城鎮,他們就會想要查詢他們的數據庫以找到與所選城鎮對應的所有街道。但是,我不確定為此組織 MySQL 調用的最佳方式。例如,我創建了一個通過 XMLrequest 觸發的函數,例如:function getTowns($country){global $conn;$sql = "SELECT distinct town from example_table where country=".$country;$rs = mysqli_query($conn, $sql);$row = mysqli_fetch_assoc($rs);return $row;}然后我可以使用返回的行填充城鎮選項。但是,我不確定這是否是最有效的,因為我認為一旦選擇了城鎮,我就需要有另一個功能來選擇街道:function getStreets($town){global $conn;$sql = "SELECT distinct street from example_table where town=".$town;$rs = mysqli_query($conn, $sql);$row = mysqli_fetch_assoc($rs);return $row;}在一個表單中有很多輸入,這將導致很多功能,所以這讓我質疑我最初想法的效率。因此我問:是否有更有效的方法從 MySQL 獲取具有多個選項的條件形式的數據?理想情況下,我在想是否有可能一次從數據庫及其相關街道中獲取所有城鎮,這樣一旦選擇了一個城鎮,街道中的選項就會自動填充,而無需進一步查詢數據庫。希望這是有道理的,我對編程和堆棧溢出還很陌生,所以希望這沒問題。
2 回答

牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
這個問題的解決方案本質上是主觀的。解決這個問題的方法可能因程序員而異。從我的角度來看,是否應該取決于你的表的數據大小。
如果它是一小組數據,那么您加載組合數據的方法會更有效。您可以將它存儲在 JSON 中,然后使用 JS 函數處理它,而不是每次選擇城鎮時都進行 AJAX 調用。這將保存您的 API 調用和 SQL 查詢。
如果數據大小更大,那么以前的方法會增加頁面的加載時間,因此最好在服務器端創建多個函數并在每次選擇時進行 AJAX 調用。
如果您使用第二種方法,請不要將輸入值直接傳遞給會打開 SQL 注入漏洞的查詢。

胡子哥哥
TA貢獻1825條經驗 獲得超6個贊
你走在正確的軌道上。如果您嘗試一次發送所有內容,這將使您的代碼更加復雜和難以維護,并且會占用更多的網絡帶寬。
您的查詢容易受到 SQL 注入攻擊。您可以使用參數化查詢來解決此問題。https://www.php.net/manual/en/pdo.prepare.php
- 2 回答
- 0 關注
- 102 瀏覽
添加回答
舉報
0/150
提交
取消