所以我正在創(chuàng)建一個條件表單,其中選項根據(jù)先前的選擇填充。例如,考慮一個基本示例:國家 = [列表]城鎮(zhèn) = [列表]街道 = [列表]人們可能想查詢他們的數(shù)據(jù)庫以找到與所選國家相對應的所有城鎮(zhèn)。一旦選擇了一個城鎮(zhèn),他們就會想要查詢他們的數(shù)據(jù)庫以找到與所選城鎮(zhèn)對應的所有街道。但是,我不確定為此組織 MySQL 調用的最佳方式。例如,我創(chuàng)建了一個通過 XMLrequest 觸發(fā)的函數(shù),例如: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;}然后我可以使用返回的行填充城鎮(zhèn)選項。但是,我不確定這是否是最有效的,因為我認為一旦選擇了城鎮(zhèn),我就需要有另一個功能來選擇街道: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 獲取具有多個選項的條件形式的數(shù)據(jù)?理想情況下,我在想是否有可能一次從數(shù)據(jù)庫及其相關街道中獲取所有城鎮(zhèn),這樣一旦選擇了一個城鎮(zhèn),街道中的選項就會自動填充,而無需進一步查詢數(shù)據(jù)庫。希望這是有道理的,我對編程和堆棧溢出還很陌生,所以希望這沒問題。
2 回答

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

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