2015-06-08 82 views
1

我試圖在「OrdreDetalierT」的不同帖子中插入數組中的所有值。 它可以很好地寫出所有的值 - 但我不能插入它。 這些值來自上一頁上的複選框。從表中插入數組的值

$_SESSION["OrdreID"] = "$last_id"; 
$Ordre_id = $_SESSION["OrdreID"]; 

$aId = $_POST['formID']; 
if(empty($aId)) 
{ 
    echo("You havn´t chosen any UVmaterialer."); 
} 
else 
{ 
$N = count($aId); 

{ 
echo("You have chosen $N UVmaterialer: "); 
for($i=0; $i < $N; $i++)  
echo($aId[$i] . ", "); 
} 
} 

//works as intended 
$aId2 = $_POST['formID']; 
for($i=0; $i < $N; $i++) 
echo "FormID" . $aId2[$i] . "<br>"; 

// This only inserts the last value of the array 
$aId3 = $_POST['formID']; 
for($i=0; $i < $N; $i++) 
$sql2 = "INSERT INTO OrdreDetalierT (OrdreID, UVmaterialeID, Antal) 
VALUES ('$Ordre_id', '$aId3[$i]', '15')"; 

「Antal」(數字)的值插入僅用於測試。 我希望有人能幫忙,我對PHP很陌生。

+0

「它正常工作,寫所有的值」 - 寫在哪裏? – user4035

+1

你沒有執行你的sql語句 –

+0

在頁面上寫。 –

回答

0

更好地使用準備一個循環內的語句:

$stmt = $db->prepare("INSERT INTO OrdreDetalierT (OrdreID, UVmaterialeID, Antal) 
         VALUES (?, ?, ?)";); 

$antal = 15; 
for($i=0; $i < $N; $i++) 
{ 
    $stmt->bind_param('isi', $Ordre_id, $aId3[$i], $antal); 
    $stmt->execute(); 
} 
$stmt->close(); 
+0

我得到一個錯誤:無法在第60行的/customers/b/3/d/kildemarkskolen2.dk/httpd.www/Indkoeb/order.php中引用參數4(我想它指的是「15」) –

+0

@AnnaJohansen您需要分配15個變量並使用它。 –

+0

謝謝,它解決了這個問題。 –