【发布时间】:2020-10-03 13:43:03
【问题描述】:
我正在从表单发送此数据集。每个数据集完全相同,但只有 event[1] 和 event[2] 正在插入(我使用不同的数据集验证了这一点)。无论我添加多少个数组 event[0] 数据从未插入到我的数据库中,这都保持不变。
event[0][equipTypeUpdate]: 2
event[0][productTypeUpdate]: 33
event[0][serialNumUpdate]: 123456
event[0][assestNumUpdate]: 123456
event[0][payNumUpdate]: 1234596
event[0][warrantyEndDate]: 2020-10-05
event[0][statusUpdate]: No
event[0][installedInRoom]: No
event[0]siteNameUpdate]: 9
event[0][roomNameUpdate]: 1
event[1][equipTypeUpdate]: 2
event[1][productTypeUpdate]: 33
event[1][serialNumUpdate]: 123456
event[1][assestNumUpdate]: 123456
event[1][payNumUpdate]: 123156
event[1][warrantyEndDate]: 2020-10-05
event[1][statusUpdate]: No
event[1][installedInRoom]: No
event[1][siteNameUpdate]: 9
event[1][roomNameUpdate]: 1
event[2][equipTypeUpdate]: 2
event[2][productTypeUpdate]: 33
event[2][serialNumUpdate]: 123456
event[2][assestNumUpdate]: 123456
event[2][payNumUpdate]: 123156
event[2][warrantyEndDate]: 2020-10-05
event[2][statusUpdate]: No
event[2][installedInRoom]: No
event[2][siteNameUpdate]: 9
event[2][roomNameUpdate]: 1
这是我的 foreach 循环,循环遍历数组以将它们保存为变量以插入数据库。我认为这是一个错误的 } 这是问题所在,但似乎无法弄清楚。 任何帮助感谢感谢
if(is_post_request()) {
if (isset($_POST["event"])) {
$events = $_POST["event"];
}
foreach ($events as $event) {
// code...
$equipIdValue = $event['equipTypeUpdate'];
$prodValue= $event['productTypeUpdate'];
$serialValue= $event['serialNumUpdate'];
$assetValue = $event['assestNumUpdate'];
$paymentValue = $event['payNumUpdate'];
$warrantyValue = $event["warrantyEndDate"];
$installedValue = $event["installedInRoom"];
$buildValue = $event["siteNameUpdate"];
$statusValue = $event["statusUpdate"];
$roomValue = $event["roomNameUpdate"];
$timeStamWar = strtotime($warrantyValue);
$siteValue = $_SESSION['location'];
create_inventory($equipIdValue ,$prodValue ,$siteValue, $buildValue, $statusValue , $serialValue, $roomValue, $installedValue, $assetValue, $paymentValue, $timeStamWar);
}
echo "New record created successfully";
$lastInsertId = mysqli_insert_id($db);
redirect_to("../Pages/my_site_stock.php?id=$timeStamWar");
}
else{
// INSERT FAILED
echo mysqli_error($db);
db_disconnect($db);
exit;
}
function create_inventory($equipIdValue ,$prodValue ,$siteValue, $buildValue, $statusValue , $serialValue, $roomValue, $installedValue, $assetValue, $paymentValue, $timeStamWar){
// SQl statement to input form data in SQL table
global $db;
$sqllogin = "INSERT INTO av_inventory (equipment, product, site, current_location, status, serial, stored_room, installed, asset_tag, po_number, warranty) VALUES (? ,? ,? ,? ,? ,?, ?, ?, ?, ?, ?)";
$stmt = mysqli_stmt_init($db);
if (!mysqli_stmt_prepare($stmt, $sqllogin)) {
header("Location: ../Pages/update_inventory.php?error=sqlerror2");
exit();
}
// otherwise go ahead
else {
mysqli_stmt_bind_param($stmt, "sssssssssss", $equipIdValue , $prodValue, $siteValue, $buildValue, $statusValue , $serialValue, $roomValue, $installedValue, $assetValue, $paymentValue, $timeStamWar);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);}
}
编辑:
根据 cmets 的建议,我对 $events 和 $event 做了一个 vardump。 他们似乎没有得到事件 [0] 数据,这很奇怪,成为网络部分下的 chrome 开发人员工具显示我的表单发布数据发送
event[0][equipTypeUpdate]: 1
event[0][productTypeUpdate]: 2
event[0][serialNumUpdate]: 123456
event[0][assestNumUpdate]: 123456
event[0][payNumUpdate]: 1234596
event[0][warrantyEndDate]: 2020-10-12
event[0][statusUpdate]: No
event[0][installedInRoom]: No
event[0]siteNameUpdate]: 9
event[0][roomNameUpdate]: 3
编辑 2.0
A few of my variables were single quotes and some were doubles.
Issue is fixed thanks for the help
【问题讨论】: