,如果我有一個即時通訊在我的數據庫查詢的子類別呈現一個類別頁面,那麼如果我點擊它送給我的一個子類,以剝離的ID的網址來查詢MYSQL數據庫
mydomain.com/product_list.php?id=subcategory.
有沒有辦法從url的子類別查詢數據庫,只顯示該子類別中的產品?
我認爲它會是這個樣子:
$sql = mysql_query("SELECT * FROM products");
,如果我有一個即時通訊在我的數據庫查詢的子類別呈現一個類別頁面,那麼如果我點擊它送給我的一個子類,以剝離的ID的網址來查詢MYSQL數據庫
mydomain.com/product_list.php?id=subcategory.
有沒有辦法從url的子類別查詢數據庫,只顯示該子類別中的產品?
我認爲它會是這個樣子:
$sql = mysql_query("SELECT * FROM products");
這可以從$_GET
DOCs獲得。
$subcategory_id = $_GET['id'];
因此,這將成爲:
if(array_key_exists('id', $_GET) and is_numeric($_GET['id'])) {
$subcategory_id = (int) $_GET['id'];
$SQL = "SELECT * FROM products WHERE subcategory_id = $subcategory_id";
}
注意我已經投了輸入變量爲整數,以防止SQL注入等作爲ID必須是數字。
如果你需要一個字符串傳遞,然後先用它mysql_real_escape_string()
DOCs,不強制類型轉換爲整數(int)
:
if(array_key_exists('id', $_GET)) {
$subcategory_id = mysql_real_escape_string($_GET['id']);
$SQL = "SELECT * FROM products WHERE subcategory_id = '$subcategory_id'";
}
謝謝你,很完美!歡呼的兄弟!非常感謝:D – MrGoodKat
+1爲徹底的答案。 –
$query = mysql_query("SELECT * FROM `products` WHERE `id` = " . mysql_real_escape_string($_GET['id']);
當然,這是假設表名是products
,和ID列是id
。
感謝您的幫助,非常感謝:D – MrGoodKat
你的問題是有點混亂。我認爲應該着眼於開始一些關於PHP的教程,以及不同類型的http請求。
您正在查看的內容稱爲GET請求。你可以在?之後訪問所有的鍵值對在通過超全局$_GET
的url中,這是一個包含所有key =>值的關聯數組。
因此按照上述$_GET['id']
是你想要的值。但是在開始查看SQL注入之前,請先考慮一下可以直接使用該值來進行查詢,這很容易。
感謝您的幫助,非常感謝:D即時學習,一次完成所有事情!我需要更多地看待一切的基本面! – MrGoodKat
你有什麼試過?你讀過什麼?你做了什麼研究?這是相當基本的,可以分解成任何有關這些技術的正派書籍中涵蓋的小得多的個人任務。 –