foreach() を使用して配列データを MySQL データベースにプッシュしようとしています。私は PHP と mysql の初心者なので、このデータを Ajax スクリプトから PHP に解析する作業を行ってきましたが、今はデータを操作するだけです。
配列内の各データセットが別々の行になるように、このデータを SQL にプッシュする正しい構文は何ですか?
私はforeachを使用しようとしていますが、複雑さは配列自体のサイズが変わる可能性があることであり、2番目の複雑さはデータ自体が更新される可能性があることです(つまり、新しい日に同じIDの新しい値)。追加するだけでなく情報を更新するインテリジェンス。古いデータを別のテーブルにバックアップすることもできます。
この構文は正しいですか?
$sql = "INSERT INTO table1 (col1, col2) VALUES ";
foreach($rows as $i=>$row) {
if ($i>0) {
$sql .= sprintf(",(%s,%s)", $row["col1_value"], $row["col2_value"]);
} else {
$sql .= sprintf("(%s,%s)", $row["col1_value"], $row["col2_value"]);
}
}
mysql_query($sql);
配列内のデータは次のとおりです。これは多次元配列の一部にすぎませんが、必要に応じて配列の残りの部分を操作する方法を見つけました。
私がする必要がある他の唯一のことは、座標フィールドを取得して次のように操作する方法を見つけることです
座標から x と y のデータを抽出する x と y を 600/386 倍にする x と y を反転し、各座標の最初の桁を取得して新しい値 y[1]x[1] を作成します。
このために、次のように最初のデータセットだけを試しましたが、PHP でのデータ処理に不慣れです。確かにそれは間違っています。
$testcoords = $_POST['data'][0]['coords'];
list($x,$y) = explode(“:”,str_replace(“’”,“”,$testcoords));
$xtrans = number_format($x*600/386,$decimals=null);
$ytrans = number_format($y*600/386,$decimals=null);
$cont = “C”.$ytrans[0].$xtrans[0]
要約すると、3つの質問
- [data] 配列内の個々のデータセットごとに行を含むテーブルにデータを転送するにはどうすればよいですか?
- 単純に連結するのではなく、テーブル内の既存の値を上書きしてアーカイブするにはどうすればよいですか?
特定の文字列を操作して、上記で定義したカスタム変数を返すにはどうすればよいですか?
[data_type] => city [data] => Array ( [0] => Array ( [id] => 16515340 [owner_id] => 3475 [owner] => Player1 [coords] => '268:252 [name] => AC2013 [score] => 11863 [city_type] => castle [location] => land ) [1] => Array ( [id] => 16515335 [owner_id] => 3475 [owner] => Player1 [coords] => '263:252 [name] => AC2013 [score] => 7 [city_type] => castle [location] => water ) [2] => Array ( [id] => 17891610 [owner_id] => 3523 [owner] => Player2 [coords] => '282:273 [name] => City of Repoman9900 [score] => 1978 [city_type] => castle [location] => water ) [3] => Array ( [id] => 10616856 [owner_id] => 73 [owner] => Player2 [coords] => '024:162 [name] => 1killer [score] => 1308 [city_type] => castle [location] => water ) [4] => Array ( [id] => 10813465 [owner_id] => 2862 [owner] => Player3 [coords] => '025:165 [name] => City of vuvuzea991 [score] => 1091 [city_type] => castle [location] => land ) [5] => Array ( [id] => 17367317 [owner_id] => 84 [owner] => Player4 [coords] => '277:265 [name] => Dreadland [score] => 776 [city_type] => castle [location] => water ) [6] => Array ( [id] => 2162850 [owner_id] => 2989 [owner] => Player5 [coords] => '162:033 [name] => City of Dinoeyez [score] => 157 [city_type] => castle [location] => water ) [7] => Array ( [id] => 2818192 [owner_id] => 556 [owner] => Player6 [coords] => '144:043 [name] => City of wildfire123 [score] => 7 [city_type] => castle [location] => water ) ) [sender] => Array ( [world] => Array ( [id] => 232 [name] => Server 4 [number] => NaN ) [alliance] => Array ( [id] => 2 [name] => Alliance2 ) [player] => Array ( [id] => 98 [name] => SuperUser ) [browser] => Array ( [type] => Chrome [version] => 25.0.1364.160 ) [aix_version] => 1.00 )
)