Php 在while循环中循环mysqli update,变量增加1

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($

我正在尝试循环此代码,因为它将动态生成。它从mysql中获取行数并循环多次。这篇文章来自ajax,它在ajax中也是循环的,工作得非常完美。在php部分,我不确定它为什么不工作。我试过很多不同的循环变化

$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();
}