0
中に、前回の結果を引っ張る:3つの剣、5本の短剣などMySQLのデータのみ、私はテーブルから複数の行を引き出し、この標準にそれらをフォーマットしていJSON配列
まあ、私はにそのデータを置くしようとすると、
$get_weapons = mysql_query("SELECT
O.player_id,
O.item_id,
O.name,
O.attack,
O.defense,
O.type,
O.owned,
(SELECT
sum(owned) FROM items_owned
WHERE owned <= O.owned AND player_id=$id) 'RunningTotal'
FROM items_owned O
HAVING RunningTotal <= $mob_avail
ORDER BY attack DESC");
// Get Weapon Info
while($weapon = mysql_fetch_array($get_weapons)){
$weapon_id = $weapon['item_id'];
$weapon_name = $weapon['name'];
$weapon_attack = $weapon['attack'];
$weapon_defense = $weapon['defense'];
$weapon_owned = $weapon['owned'];
// Formatting Weapons Message
$weapon_message = 'You Used: '.$weapon_owned.' '.$weapon_name.'\'s, ';
}
$data[] = array('weapons'=>$weapon_message);
echo json_encode($data);
私は理解して:[{"weapons":"You Used: 3 Rusty Dagger's, 2 Swords"}]
は
ここでは、whileループの内部で完全に表示されます私は現在使用しているクエリ、です:JSON配列、それだけで、それは言うべきこの[{"weapons":"You Used: 3 Rusty Dagger's, "}]
として最後の結果を引っ張っていますそれは$data
配列はwhileループの外にありますが、合計で1つの配列しか必要ないため、この問題を解決するために何をすべきかに固執しています。どんな助けも素晴らしいだろう
あなたのwhileループが各ループ上の内部の変数を上書きします:
は、ここで参考答えです。静的変数ではなく配列に格納する必要があります。例:$ weapon_id [$ i] = $ weapon ['item_id']; whileループの最後に$ i ++を置く。 whileループの後で配列にアクセスします。 – Matt
whileループ内の配列に武器をarray_pushする必要があります。その後、配列内の発生を数えます。それ以降は、whileループの後にメッセージを設定することができます。 – cpugourou
@Matt私はあなたが何を意味するのか混乱しています。そして突然すべてのクエリが機能していませんが、データベース内で同じクエリをタイプし、データベース内で動作しましたが、PHPファイルもはやデータを出力する必要はありません。彼らは何らかの理由がありますか? –