繁体   English   中英

循环mysqli更新,变量在while循环中增加1

[英]Looping mysqli update with variable increasing by 1 in while loop

我正在尝试循环此代码,因为它将动态生成。 它从 mysql 获取行数并循环多次。 POST 来自 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++;
  }

未循环代码有效:

  $eleID1 = $_POST['eleID1'];
  $resizeWidth1 = $_POST['resizeWidth1'];
  $resizeHeight1 = $_POST['resizeHeight1'];
  $eleID2 = $_POST['eleID2'];
  $resizeWidth2 = $_POST['resizeWidth2'];
  $resizeHeight2 = $_POST['resizeHeight2'];

  
  $UploadMain = $connect->prepare("UPDATE featureSheetContent SET `ele_width` = ?, `ele_height` = ? WHERE id = ?");
  $UploadMain->bind_param('sss', $resizeWidth1, $resizeHeight1, $eleID1);
  $UploadMain->execute();
  $UploadMain = $connect->prepare("UPDATE featureSheetContent SET `ele_width` = ?, `ele_height` = ? WHERE id = ?");
  $UploadMain->bind_param('sss', $resizeWidth2, $resizeHeight2, $eleID2);
  $UploadMain->execute();

您的变量变量语法错误; 正确的语法是${"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();
}

顺便说一句,您的UPDATE查询将为任何用户更新一行,而不仅仅是user_id = '$userID' 这是故意的吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM