Php 在while循环中循环mysqli update,变量增加1
我正在尝试循环此代码,因为它将动态生成。它从mysql中获取行数并循环多次。这篇文章来自ajax,它在ajax中也是循环的,工作得非常完美。在php部分,我不确定它为什么不工作。我试过很多不同的循环变化Php 在while循环中循环mysqli update,变量增加1,php,jquery,ajax,mysqli,Php,Jquery,Ajax,Mysqli,我正在尝试循环此代码,因为它将动态生成。它从mysql中获取行数并循环多次。这篇文章来自ajax,它在ajax中也是循环的,工作得非常完美。在php部分,我不确定它为什么不工作。我试过很多不同的循环变化 $queryEle = "SELECT * FROM featureSheetContent WHERE `user_id` = '$userID' AND `feature_id` = '$featureID'"; $resultEle = mysqli_query($
$queryEle = "SELECT * FROM featureSheetContent WHERE `user_id` = '$userID' AND `feature_id` = '$featureID'";
$resultEle = mysqli_query($connect,$queryEle);
$rowEle = mysqli_num_rows($resultEle);
$i = 1;
while ($i < $rowEle) {
$eleID.$i = $_POST['eleID'.$i];
$eleID .= $eleID.$i;
$resizeWidth.$i = $_POST['resizeWidth'.$i];
$resizeWidth .= $eleID.$i;
$resizeHeight.$i = $_POST['resizeHeight'.$i];
$resizeHeight .= $eleID.$i;
$UploadMain = $connect->prepare("UPDATE featureSheetContent SET `ele_width` = ?, `ele_height` = ? WHERE id = ?");
$UploadMain->bind_param('sss', $resizeWidth, $resizeHeight, $eleID);
$UploadMain->execute();
$i++;
}
变量的语法错误;正确的语法是
${“eleID”。$i}
。但是没有必要每次通过循环都使用不同的变量。将UPDATE
查询绑定到一组特定的变量,并从POST
变量中重新分配这些变量
$eleID = $resizeWidth = $resizeHeight = null; // Create the variables before binding
$UploadMain = $connect->prepare("UPDATE featureSheetContent SET `ele_width` = ?, `ele_height` = ? WHERE id = ?");
$UploadMain->bind_param('sss', $resizeWidth, $resizeHeight, $eleID);
for ($i = 1; $i <= $rowEle; $i++) {
$eleID = $_POST['eleID'.$i];
$resizeWidth = $_POST['resizeWidth'.$i];
$resizeHeight = $_POST['resizeHeight'.$i];
$UploadMain->execute();
}
$eleID=$resizeWidth=$resizeHeight=null;//在绑定之前创建变量
$UploadMain=$connect->prepare(“更新功能表内容集`ele\u width`=?,`ele\u height`=?其中id=?”;
$UploadMain->bind_参数('sss',$resizeWidth,$resizeHeight,$eleID);
对于($i=1;$i execute();
}
顺便说一句,你的
UPDATE
查询将为任何用户更新一行,而不仅仅是user\u id='$userID'
。这是有意的吗?嗨,我尝试了你的代码,但似乎不起作用。奇怪的是,一切看起来都是正确的。至于不包括user\u id,这是因为我只向每个用户显示特定的行,更新只会修改这些行ne行。是什么阻止用户提交与您显示的ID不同的ID?他们可以打开开发人员工具并更改隐藏的输入。尝试在顶部添加变量初始化,看看是否可以解决问题。顶部的变量初始化不起作用。我看不出这不起作用的任何原因。您确定$\u POST
是否填写了变量?
$eleID = $resizeWidth = $resizeHeight = null; // Create the variables before binding
$UploadMain = $connect->prepare("UPDATE featureSheetContent SET `ele_width` = ?, `ele_height` = ? WHERE id = ?");
$UploadMain->bind_param('sss', $resizeWidth, $resizeHeight, $eleID);
for ($i = 1; $i <= $rowEle; $i++) {
$eleID = $_POST['eleID'.$i];
$resizeWidth = $_POST['resizeWidth'.$i];
$resizeHeight = $_POST['resizeHeight'.$i];
$UploadMain->execute();
}