2016-07-31 86 views
0

我已經制作了三列MySQL數據庫tags_id,tags,user_id,它必須給出關於user_id給出的所有標記。如何從多個行檢索值作爲單個字符串

例如:此鏈接: 「http://allwaysready.16mb.com/Cuboid/tagsTest.php?user_id[]=7

輸出是:

{"result":[{"tags":"Pascol"},{"tags":"PHP"},{"tags":"Python"}]} 

但我需要的結果是在唱串這樣的:

{"result":[{"tags":"Pascol","PHP",","Python"}]} 

它應該不在數組中,我想要它在一個單一的字符串。

這裏是我的PHP代碼:

<?php 

if($_SERVER['REQUEST_METHOD']=='GET'){ 

    $user_id = $_GET['user_id']; 

    require_once('dbConnect.php'); 

    $user_tags = array(); 

    foreach ($_REQUEST['user_id'] as $key => $val) { 
     $user_tags[$key] = filter_var($val, FILTER_SANITIZE_STRING); 
    } 
    $user_ids = "'" . implode("','", $user_tags) . "'"; 
    $sql = "SELECT * FROM user_tags WHERE user_id IN ({$user_ids})"; 

    $r = mysqli_query($con,$sql); 

    //creating a blank array 
    $result = array(); 

    //looping through all the records fetched 
    while($row = mysqli_fetch_array($r)){ 

     //Pushing name and id in the blank array created 
     array_push($result,array(
      "tags"=>$row['tags'] 
     )); 
    } 

    //Displaying the array in json format 
    echo json_encode(array('result'=>$result)); 

    mysqli_close($con); 
} 

我應該在我的代碼改變? 請幫我們謝謝你。

+0

刪除array_push和嘗試這個$結果[tags] [] = $ row ['tags']; –

+0

{「result」:[{「tags」:「Pascol」,「PHP」,「,」Python「}]}?它甚至不是有效的'json'字符串,你的意思是{」result「:[{」 「:」Pascol,PHP,Python「}]}? –

回答

1

array_push意味着

推到與$鍵=> $值的數組新的元素

因此,在這種情況下,解決方法是刪除array_push,並嘗試

$result['tags'][] = $row['tags']; 
+0

但是在添加這個代碼標籤之後,我認爲它是一個數組,我只想保留爲隻字符串 –

+0

結果」tags「:」Pascol「,」PHP「 ,「,」Python「必須使用數組來做到這一點。對於遲到的回覆我很抱歉。 –

相關問題