1

重複の可能性:
print_r() の出力で変数を確認できるが、コードで変数にアクセスする方法がわからない

配列を変数に格納できますか?

私はこの配列を持っています:

$_POST['product']

そして私がそれを印刷するとき:

echo "<PRE>";
print_r($_POST['product']);
echo "</PRE>";

結果は次のとおりです。

<PRE>Array
(
    [0] => Array
        (
            [0] => 1
            [1] => cola
            [2] => wwww
            [3] => 1
            [4] => 2.00
            [5] => 0.00
            [6] => 2.00

        )

)
</PRE>

配列の値を変数に格納するにはどうすればよいですか? たとえば[1] => cola、データベースのテーブルに挿入する必要があります。

4

4 に答える 4

1

foreach ループを使用して配列を「スキャン」し、次のように INSERT クエリをデータベースに送信する必要があります。

<?php
$updateStmt = $pdo->prepare("INSERT INTO table (field) VALUES (:FIELD)");
foreach( $_POST['product'] as $key => $val ){
    $updateStmt->execute(array(
        ':FIELD' => $val
    ));
}
?>
于 2012-11-10T16:10:53.213 に答える
0

それはまったく必要ありません。次のことを行うだけです。

$arr = $_POST['product']
echo $arr[0][1]

これは、配列値にアクセスして必要なことを行う通常の方法です。

于 2012-11-10T16:13:20.373 に答える
0
if(!empty($_POST['product'])) {
    $colaVar = $_POST['product'][0][1];
    echo $colaVar; // outputs'cola'
}
于 2012-11-10T16:07:20.443 に答える
0

$_POST['product'][0][1]cola の値を取得するような配列にアクセスできます。

データベースに複数回挿入するには、foreach ループまたは for ループを使用する必要があります。

更新しました

よし、Foreach ループ

foreach($_POST['product'] as $product) {
   mysql_query("INSERT INTO YOURTABLENAME('FIELD1','FIELD2'....) VALUES('".$product[0]."','".$product[1]."'....)"); 

}

for loop を使用することを好みました。

$count_array = count($_POST['product']);
for($i=0; $i>= $count_array; $i++){
   mysql_query("INSERT INTO YOURTABLENAME('FIELD1','FIELD2'....) VALUES('".$_POST['product'][$i]."','".$_POST['product'][$i]."'....)"); 
}

for/foreachループ内でinsert sqlを回避することにより、データベースに挿入するための最適化方法もあります..しかし、今のところはそれでうまくいくはずです.. :)

于 2012-11-10T16:44:06.320 に答える