这是我的for
循环。我想更新那些隐藏的designMasterId记录,但它会自动更新所有记录..
通过这个隐藏的文本框,我尝试传递designmasterId:
<input type="hidden" name="designMasterId[]" value="{$designArray[sec].designMasterId}">
Php代码:
if(isset($_POST['Submit']))
{
$recDate = $_POST['rDtYear']."-".$_POST['rDtMonth']."-".$_POST['rDtDay'];
$lastProcess = isset($_POST['processId']) ? $_POST['processId'] : 0;
$nextProcessId = isset($_POST['nextProcessId']) ? $_POST['nextProcessId'] : 0;
for($i=0; $i< count($_POST['designMasterId']); $i++)
{
$processId = isset($_POST['processId'][$i]) ? $_POST['processId'][$i] : 0;
$reciveWet = isset($_POST['reciveWet'][$i]) ? $_POST['reciveWet'][$i] : 0;
$designMasterId = isset($_POST['designMasterId'][$i]) ? $_POST['designMasterId'][$i] : 0;
$updatePro = "UPDATE process
SET rDate = '".$recDate."',
reciveWet = '".$reciveWet."',
nextProcessId = ".$nextProcessId.",
processMasterId = ".$nextProcessId.",
status = 'I'
WHERE designMasterId = ".$designMasterId;
$updateProRes = mysql_query($updatePro);
if(!$updateProRes)
{
echo "Recive Fail";
}
else
{
header("Location:processRecive.php");
}
}
}
答案 0 :(得分:0)
我已更新您的代码检查是否适用于您..
if(isset($_POST['Submit']))
{
$recDate = $_POST['rDtYear']."-".$_POST['rDtMonth']."-".$_POST['rDtDay'];
$lastProcess = isset($_POST['processId']) ? $_POST['processId'] : 0;
$nextProcessId = isset($_POST['nextProcessId']) ? $_POST['nextProcessId'] : 0;
for($i=0; $i< count($_POST['designMasterId']); $i++)
{
$processId = (isset($_POST['processId'][$i]) && !empty($_POST['processId'][$i])) ? $_POST['processId'][$i] : 0;
$reciveWet = (isset($_POST['reciveWet'][$i]) && !empty($_POST['reciveWet'][$i])) ? $_POST['reciveWet'][$i] : 0;
$designMasterId = (isset($_POST['designMasterId'][$i]) && !empty($_POST['designMasterId'][$i])) ? $_POST['designMasterId'][$i] : 0;
if(isset($designMasterId) && !empty($designMasterId)){
$updatePro = "UPDATE process
SET rDate = '".$recDate."',
reciveWet = '".$reciveWet."',
nextProcessId = ".$nextProcessId.",
processMasterId = ".$nextProcessId.",
status = 'I'
WHERE designMasterId = ".$designMasterId;
$updateProRes = mysqli_query($updatePro);
if(!$updateProRes)
{
echo "Recive Fail";
}
else
{
header("Location:processRecive.php");
}
}else{
continue;
}
}
}
答案 1 :(得分:0)
试试这个会对你有用
if(isset($_POST['Submit'])) {
$recDate = $_POST['rDtYear']."-".$_POST['rDtMonth']."-".$_POST['rDtDay']; $lastProcess = isset($_POST['processId']) ? $_POST['processId'] : 0; $nextProcessId = isset($_POST['nextProcessId']) ? $_POST['nextProcessId'] : 0;
for($i=0; $i< count($_POST['designMasterId']); $i++)
{
$processId = (isset($_POST['processId'][$i]) && !empty($_POST['processId'][$i])) ? $_POST['processId'][$i] : 0;
$reciveWet = (isset($_POST['reciveWet'][$i]) && !empty($_POST['reciveWet'][$i])) ? $_POST['reciveWet'][$i] : 0;
$designMasterId = (isset($_POST['designMasterId'][$i]) && !empty($_POST['designMasterId'][$i])) ? $_POST['designMasterId'][$i] : 0;
if(isset($designMasterId) && !empty($designMasterId)){
$updatePro = "UPDATE process
SET rDate = '".$recDate."',
reciveWet = '".$reciveWet."',
nextProcessId = ".$nextProcessId.",
processMasterId = ".$nextProcessId.",
status = 'I'
WHERE designMasterId = ".$designMasterId;
$updateProRes = mysqli_query($updatePro);
if(!$updateProRes)
{
echo "Recive Fail";
}
else
{
header("Location:processRecive.php");
}
}else{
continue;
}
}
}
答案 2 :(得分:0)
在计数记录中使用array_filter进行循环
<?PHP
if(isset($_POST['Submit']))
{
$recDate = $_POST['rDtYear']."-".$_POST['rDtMonth']."-".$_POST['rDtDay'];
$lastProcess = isset($_POST['processId']) ? $_POST['processId'] : 0;
$nextProcessId = isset($_POST['nextProcessId']) ? $_POST['nextProcessId'] : 0;
for($i=0; $i< count(array_filter($_POST['designMasterId'])); $i++)
{
$processId = isset($_POST['processId'][$i]) ? $_POST['processId'][$i] : 0;
$reciveWet = isset($_POST['reciveWet'][$i]) ? $_POST['reciveWet'][$i] : 0;
$designMasterId = isset($_POST['designMasterId'][$i]) ? $_POST['designMasterId'][$i] : 0;
$updatePro = "UPDATE process
SET rDate = '".$recDate."',
reciveWet = '".$reciveWet."',
nextProcessId = ".$nextProcessId.",
processMasterId = ".$nextProcessId.",
status = 'I'
WHERE designMasterId = ".$designMasterId;
$updateProRes = mysql_query($updatePro);
if(!$updateProRes)
{
echo "Recive Fail";
}
else
{
header("Location:processRecive.php");
}
}
}
?>