2016-04-19 32 views
0

我正在嘗試創建一個API,我目前正在嘗試追加變量到URL以獲取特定的數據返回在JSON輸出中..我目前可以顯示所有內容一張桌子。任何意見,將不勝感激。請參見下面的代碼...在URL中傳遞變量以獲得特定的JSON輸出

$connection = @mysqli_connect($server, $user, $password, $bd); 

if(! $connection) die("Error ".mysqli_connect_error()); 

$sql = "SELECT * FROM posts"; 
$result = mysqli_query($connection, $sql); 
$array_post = array(); 


while($data = mysqli_fetch_assoc($result)){ 
    $array_post[] = $data; 

} 

echo json_encode($array_post); 
+0

代碼的任何問題?或只是尋求建議? –

+0

你想要附加到URL的具體數據是什麼? ($ data = mysqli_fetch_assoc($ result)){ $ array_post [$ counter] = $ data; –

+0

在你的數組中添加一個計數器。 $ counter ++; } –

回答

1

您可能是指POST或GET請求後的api響應?我對嗎?

如果是,那麼你可以做到這一點...

$response = $array_post; 
    http_response_code(200); 
    print json_encode($response); 

你需要一個流輸出JSON數據,你可以通過http_response_code($代碼)函數,然後打印設置HTTP狀態代碼響應。

有包可以處理API請求和響應。 我建議你看一下Curl或者更好的GuzzleHttp。

希望它有幫助。

0

您可以存儲特定的值從SQL查詢返回數組鍵這樣

while($data = mysqli_fetch_assoc($result)){ 
    $array_post['key2'][] = $data['key2']; 
    $array_post['key2'][] = $data['key2']; 

} 

echo json_encode($array_post); 

僅使用您需要的值通過URL傳遞。 如果你需要所有的記錄,那麼你的代碼是正確的。 如果您正在考慮某些記錄,請將您的查詢更改爲 ,如SELECT field1,field2 FROM table_name。 ,因爲它有時會影響執行SQL查詢的性能。

+0

奇怪這隻會返回表中的第7行。這很混亂,很奇怪 –

+0

對不起。 我剛編輯我的答案。在'$ array_post ['key2']'後加'''' –

+0

謝謝!那麼,我將如何能夠在JSON中返回特定的結果?會有這樣的工作嗎? 「http://localhost/api/api.php?post_title = Strawbrerry&post_description = Strawberry」 –