sql
  • arrays
  • json
  • object
  • pear
  • 2016-04-03 13 views 0 likes 
    0

    私はオブジェクトとしてデータを出力し、次のコードを持っている:オブジェクトではなく配列として出力しますか?

    <?php 
    
    require_once('DB.php'); 
    include "/diska/www/include/coa123-13-connect.php"; //to provide $username1,$password1 
    
    $host='co-project.lboro.ac.uk'; 
    $dbName='coa123wdb'; 
    $db=DB::connect("mysql://$username1:[email protected]$host/$dbName"); 
    
    if(DB::isError($db)){die($db->getMessage());} 
    
    $sql=$_REQUEST['sql']; 
    
    $db->setFetchMode(DB_FETCHMODE_ASSOC); 
    
    $results = $db->getAll($sql); 
    if (PEAR::isError($results)){die($results->getMessage());} 
    
    echo json_encode($results); 
    
    ?> 
    

    のように見えた出力:[{ "名前"

    : "Haslegraveホテル"、 "容量": "200" 、 "weekend_price": "2000"、 "weekday_price": "1500"、 "licensed": "0"、 "grade": "1"、 "cost": "7"}、{"name": "Forest Inn 」、「capacity」:「260」、「weekend_price」:「1800」、「weekday_price」:「1600」、「licensed」:「1」、「grade」:「1」、「cost」:「6」} 「500」、「weekend_price」:「4000」、「weekday_price」:「3000」、「licensed」:「0」、「grade」:「1」、 、 "cost": "8"}]

    私はそれはのような配列としてoutputedことがしたいと思います:[[ "Haslegraveホテル"、 "200"、 "2000"、 "1500"、 "0"、 "1"、」

    「160」、「1800」、「1600」、「1」、「1」、「6」、「Southwestern Estate」、「500」、「4000」、 「3000」、「0」、「1」、「8」]

    これを変更する方法はありますか?

    答えて

    1

    json_encodeは、何があってもデータをjson表現に変換するだけです。配列として出力する唯一の方法は、json_encodeに渡す配列を文字列キーのない通常の配列にすることです。つまり、連想配列ではありません。

    それは十分だろうかどうかは知りませんが、あなただけのフェッチモードを変更して逃げるかもしれません: $db->setFetchMode(DB_FETCHMODE_ORDERED)

    関連する問題