-1

MySQLselectをJSONにエンコードするPHPページがあります。配列の最初のオブジェクトとして「ステータス値」を追加したいと思います。

PHPコード

{
//CREATE USER UNKNOWN ARRAY RESULT
$Statusresult = mysql_query("SELECT TEXT_KEY, TEXT_VALUE FROM T_TEXTS WHERE TEXT_KEY = 'USER_FAILED' ") or die(mysql_error());
$Statusrows = array();
while($s = mysql_fetch_assoc($Statusresult)) 
{
    $Statusrows[] = $s;
}
print json_encode($Statusrows);

}

この結果は次のとおりです。

{
"TEXT_KEY" = "USER_FAILED";
"TEXT_VALUE" = "UNKNOWN USER";

}

最初のオブジェクトマニュアルを追加して、結果を次のようにします。

        {
    "STATUS" = "1";
    "TEXT_KEY" = "USER_FAILED";
    "TEXT_VALUE" = "UNKNOWN USER";
}

これどうやってするの ?

私はこのアプローチを試しましたが、どういうわけかエラーがあります...

{
    //CREATE USER UNKNOWN ARRAY RESULT
    $Statusresult = mysql_query("SELECT TEXT_KEY, TEXT_VALUE FROM T_TEXTS WHERE TEXT_KEY = 'USER_FAILED' ") or die(mysql_error());
    $Statusrows = array();
    $Statusrows = { "STATUS" => "1" };
    while($s = mysql_fetch_assoc($Statusresult)) 
    {
    //  $Statusrows[] = $s;
        array_push($Statusrows, $s);    
    }
    print json_encode($Statusrows);
}
4

3 に答える 3

4

その上に仮想列を追加し、

SELECT '"1"' AS `STATUS`, TEXT_KEY, TEXT_VALUE 
FROM T_TEXTS 
WHERE TEXT_KEY = 'USER_FAILED'

SQLFiddleデモ

于 2012-09-23T15:55:19.947 に答える
1

配列和集合演算子(+を利用できます。ドキュメント

$Statusrows[] = ["STATUS" => "1"] + $s;

または:

$status1 = ["STATUS" => "1"];
while ($s = mysql_fetch_assoc($Statusresult)) 
{
    $Statusrows[] = $status1 + $s;
}

これにより、SQL内でそのロジックを処理する手間が省けます。

于 2012-09-23T16:15:33.870 に答える
0

以下をお試しください:

$Statusrows = array();
while($s = mysql_fetch_assoc($Statusresult)) 
{
    $s["STATUS"] = "1";
    $Statusrows[] = $s;
}
于 2012-09-23T16:22:52.250 に答える