2017-03-16 41 views
1

我正在嘗試創建一個RESTful Web服務,並且遇到了url部分的問題。我這樣的index.php?ID = 2顯示如如何將index.php重寫爲.htaccess中的url

{ 
"name": "Raymond", 
"Nation": "USA" 
} 

但我想的轉換 '的index.php?ID = 2' 到如 '本地主機/俱樂部/播放/ 2 /',仍然有相同的輸出。

{ 
"name": "Raymond", 
"Nation": "USA" 
} 

也可以說我有3只在我的數據庫ID爲1,2,3,行如何調整我的代碼,這樣,當有人使用正確的ID,確定200點消息顯示,或者如果ID是外我的數據庫中會出現一個錯誤400。

這裏是我的代碼:

$dbhost = '127.0.0.1'; //host connection 
$dbuser = "root"; //root connet 
$dbpass = ""; //password intialization 
$db = 'adminlogin'; //Database specification 
$conn = new mysqli($dbhost, $dbuser, $dbpass, $db); 
if (!$conn) { 
    die('Could not connect: ' . mysql_error()); 
} 
$id = $_GET['ID']; 
if ($id){ 
$id = mysqli_real_escape_string($conn, $id); 
} else { 
    echo 'no ID'; 
} 
$query = "SELECT Name, Position, Nationality, Market FROM staffdb WHERE ID ='" . $id . "'"; 
$result = mysqli_query($conn, $query); 
if (!$result) { 
    printf("Error: %s\n", mysqli_error($conn)); 
    exit(); 
} 
$temp = array(); 
if ($result) { 
    while ($row = mysqli_fetch_object($result)) { 
     $temp = $row; 
    } 
    header('Content-Type: application/json; charset=UTF-8'); 
    $json_string = json_encode($temp, JSON_PRETTY_PRINT); 
    print $json_string; 
} else { 
    echo 'no array'; 
} 

非常感謝!

+0

你好@Addey,請問1個問題只在1職位。我的建議是,編輯數據庫問題並使用適當的標籤創建另一個問題。歡迎來到這個網站:-) –

回答

0

Apache模塊mod_rewrite允許您重寫進入服務器並基於正則表達式解析器的URL請求。

你需要把這個變成的.htaccess文件

RewriteEngine On 
RewriteRule ^/club/player/([0-9]+)/$ index.php?ID=$1 [L] 

我相信本地主機是主機名。所以你只需從重寫規則中跳過這一點。

您不需要更改代碼中的任何內容。既然你通過你的變量作爲ID

相關問題