2013-11-27 130 views
0

首先,我真的無法在任何地方找到對這個主題有用的東西。
我試圖讓事情有所simular一個論壇,如何獲得當前頁面的isset

一個小的解釋, (是的,我知道它不是SEO,但我只想找功能大氣壓)
比方說你請轉到example.com/?1,然後在索引頁面上顯示ID爲1的數據庫條目。如果轉到example.com/?3,則會顯示ID爲3的數據庫條目,等等..

DB Structure 
---------------------------------------- 
| id | label | description | parent_id | 
|--------------------------------------- 
| 1 | General | NULL  |   0 | 
| 2 | Public | NULL  |   1 | 
| 3 | Private | NULL  |   1 | 
---------------------------------------- 

PHP Code 
if ($stmt = $mysqli->prepare("SELECT id, label, description, parent_id FROM categories")) { 
$stmt->execute(); // Execute the query. 
$stmt->store_result(); 
$stmt->bind_result($id, $label, $desc, $parent); // Get variables from result. 
    while ($stmt->fetch()) { 
     if(isset($id)) { 

       echo "Hello, This is the $label category"; 

     } 
    } 
} 

什麼,我缺少的是一種方式來獲得用戶的當前 「isset」(.COM /?10,.COM /?5,ETC)之前查詢運行,所以我可以檢查數據庫中的isset並獲得正確的值,現在它輸出數據庫中的所有行,我將非常感謝任何幫助:)

如果您知道一個更好的方式做這樣的事情(不使用框架),請讓我知道!

+0

'while($ stmt-> fetch()){'not'while($ stmt2-> fetch()){'btw。 –

+0

woops呀,謝謝你指出,忘了改變它的問題:) – user2267175

+0

沒問題;-) –

回答

1

從術語的角度來看,這聽起來像您有興趣瞭解什麼參數在請求的查詢字符串中傳遞。

在你的情況,你做的有點奇怪,因爲有URI格式,如/?*其中*是整數ID值,你實際上會傳遞一個可變名稱參數。既然你不知道參數的名字是什麼,你會做這樣

$ids_in_query_string = array_keys($_GET); 

東西要保存其推斷其ID(一個或多個)的請求的鍵名。

我會建議的是形成您的查詢字符串,如/?id=*,這樣你總是知道$_GET檢查哪個關鍵。例如:

$id = null; 
if (!empty($_GET['id']) && is_numeric($_GET['id'])) { 
    $id = $_GET['id']; 
} 
if (!is_null($id)) { 
    // perform your query for selected ID 
} else { 
    // do something else 
} 
+0

感謝您的回覆!不是我正在尋找的東西,但你確實幫我找到了我可以使用的詞我已經忘記了所有關於這個詞的參數:)這是我發現,如果其他任何東西都在尋找類似的東西:http:// stackoverflow。 com/a/3901688/2267175 Cheers – user2267175

+0

@ user2267175好的。你想要URL重寫。你是否遺漏了你的示例URI中的'?',可能會更清楚:) –