foreach
を使用して多重挿入しています(各製品には多くの属性が含まれている可能性があるため、2つのループレベルがあります)。 stmtを使用するように提案しましたが、これを行う方法がわかりません。foreach 2レベル配列ループで複数挿入
私はform.Andからデータを取得する方法を知っていると私はデータベースにデータを入れて助けが必要です。
Array ([1] => Array (
[category] => 1
[code] => NFK50889922
[price] => 15.00 [name] => Pendants
[description] => Gold pendants covered with 400k diamond
[thumbnail] => 131120091585.jpg
//second level array for attribute
[attcode] => Array ([0] => [1] => [2] =>)
[color] => Array ([0] => [1] => [2] =>)
[size] => Array ([0] => [1] => [2] =>)
[stock] => Array ([0] => [1] => [2] =>)))
コード:prodcutため
// Check for a form submiss
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$product=$_POST['product'];
foreach($product as $productcount){
$q = 'INSERT INTO product(id,code,name,description,category_id,price,icon) VALUES (NULL,'.$productcount['code'].',"'.$productcount['name'].'",'.$productcount['description'].',"'.$productcount['category'].',"'.$productcount['price'].',"'.$productcount['thumbnail'].')';
mysqli_query($dbc, $q);//insertion of general information of current product
//insertion of many attribute of current product
$sql = 'INSERT INTO product_attribute (product_id,code,c_value,s_value,stock) VALUES (LAST_INSERT_ID(), ?, ?, ?, ?)';
// Prepare the statement:
$stmt = mysqli_prepare($dbc, $sql);
// For debugging purposes:
// if (!$stmt) echo mysqli_stmt_error($stmt);
mysqli_stmt_bind_param($stmt,'sssi',$attribute_code,$color_value,$size_value,$stock_unit);
foreach($productcount['code'] as $attcode){
$attribute_code=$attcode;
}
foreach($productcount['color'] as $attcolor){
$color_value=$attcolor;
}
foreach($productcount['size'] as $attsize){
$size_value=$attsize;
}
foreach($productcount['stock'] as $attstock){
$stock_unit=$attstock;
}
foreach($productcount['attcode'] as $attcode){
$attcode;
}
// Execute the query:
mysqli_stmt_execute($stmt);
$stmt->close();
}
表:製品属性の
id---code---name---description---categori_id---price
表:MySQLで
id---product_id---code---color---size---stock
は、あなたが何をしようとしたことがありますか? – Indranil
私はstmtを挿入しようとしていますが、これを行うより良い方法があるのだろうかと疑問に思っています。 –