0
我遇到了問題。我正在使用mod_rewrite重命名我的URL使用 - 在URL中通過mod_rewrite和查詢Mysql數據庫
一切工作正常,直到我重新格式化我的URL以便空格包含 - 而不是%20。
site.com/page.php?country=abc®ion=d e f&city=gh i
site.com/abc/d-e-f/gh-i/
目前我做這個
if (isset($_GET['country'])) {$country = str_replace('-', ' ', $_GET['country']);}
if (isset($_GET['city'])) {$city = str_replace('-', ' ', $_GET['city']);}
if (isset($_GET['region'])) {$region = str_replace('-', ' ', $_GET['region']);}
我然後查詢例如數據庫時轉換回正常:
str_replace(' ', '-', $_GET['city'])
然而,這是一些城市同時使用創造了一個問題一個空間和一個 - 。 聖安德烈留尼汪島。
最初我想過如何運行原始SQL查詢,如果返回0結果,請在再次運行查詢之前使用str_replacing空格。但是,如果城市僅包含 - 和0空間,例如聖安德烈,這隻會修復它。
$sql2 = "SELECT `name`, FROM `list` WHERE country = '$regionCode[0]' AND admin1 = '$regionCode[1]' AND admin2 = '$regionCode[2]' AND city = '$city' ORDER BY 'moddate'";
什麼是最好的處理方法?我應該使用雙破折號來處理它們嗎? EG 聖安德烈團聚島還是有更好的辦法嗎?
謝謝
通常,在網址中包含人類可讀的slu will的網站也會*包含整數ID。在這種風格下,你完全忽略了服務器端的slu and,只是基於id進行查詢;這可以解決任何有重複城市名稱的問題。 –
謝謝薩姆,是的,這是另一種選擇,我希望避免使用ID字段 –