星空2020 2022-12-10 16:51 采纳率: 64.1%
浏览 25
已结题

PHP+MYSQL update数据前如何判断数据是否存在?

PHP+MYSQL update数据前如何判断数据是否存在?如果不存在,则弹窗提示不存在的数据。
当'$name[$i]'中某个值不在数据库中时,则提示此数据(张三,王五)不存在,无法更新!


<?php
  $name = $_POST['name'];

  $name=explode(',',$name);
  for($i=0;$i<count($name);$i++){
      $sql = "update products set status =2 where name in ('$name[$i]')";  // 当'$name[$i]'中某个值不在数据库中时,则提示此数据不存在,无法更新。
      if ($conn->query($sql) === TRUE) {
          href('../update.php');
      }
      else {
          echo "Error: " . $sql . "<br>" . $conn->error;
      }
  }
?>
 




<textarea name="name"  placeholder="多个姓名,换行隔开!!!" autocomplete="off" class="layui-input" style="width: 300px; cols="40" rows="5" id="name"></textarea>


//提交更新时,如何将name值的多个换行的数据传给后台?并注意查询是否存在?不存在则提示无法更新。
        form.on('submit(L_submit)', function(data){
            $.ajax({ 
                url:'./update_do.php',   
                method:'post',   
                data:data.field,  //(如何将换行隔开的name值传递给后台???)  
                dataType:'JSON',    
                success:function(res){   
                    if(res.code=='0'){   
                    layer.msg("更新成功",{icon: 1, time: 1000},function(){location.reload();}); //提交成功后刷新页面
                    }        
                    else      
                    layer.msg("(张三,王五)不存在,更新失败!",{icon: 1, time: 1000},function(){location.reload();}); //提交成功后刷新页面; 
                    },       
                    error:function (data) {
 
                    }     
            }); 
            return false;
        });

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-10 17:26
    关注

    望采纳


    可以在更新数据之前执行一个查询语句来确定给定的 name 值是否存在。如果查询返回结果的行数大于零,则表明 name 存在,可以执行更新操作;如果查询返回的行数为零,则表明 name 不存在,可以弹出提示信息,告知用户该数据不存在。

    代码如下:

    <?php
      $name = $_POST['name'];
     
      $name=explode(',',$name);
      for($i=0;$i<count($name);$i++){
          // 在更新操作之前,首先执行查询操作来确定给定的 name 值是否存在
          $query = "SELECT * FROM products WHERE name = '$name[$i]'";
          $result = $conn->query($query);
          
          // 如果查询返回的行数大于零,则表明 name 存在,可以执行更新操作
          if ($result->num_rows > 0) {
              $sql = "update products set status =2 where name in ('$name[$i]')";
              if ($conn->query($sql) === TRUE) {
                  href('../update.php');
              } else {
                  echo "Error: " . $sql . "<br>" . $conn->error;
              }
          } else {
              // 如果查询返回的行数为零,则表明 name 不存在,您可以弹出提示信息
              echo "$name[$i] 不存在,无法更新!";
          }
      }
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 已采纳回答 1月10日
  • 修改了问题 12月10日
  • 修改了问题 12月10日
  • 展开全部

悬赏问题

  • ¥15 准备学习小程序搭建,谁能手把手的教我啊?
  • ¥15 关于#嵌入式硬件#的问题:树莓派第一天重装配置python和opencv后第二天打开就成这样,瞎捣鼓搞出来文件夹还是没把原来的界面调回来
  • ¥20 Arduino 循迹小车程序电路出错故障求解
  • ¥20 Arduino 循迹小车程序电路出错故障求解
  • ¥100 AT89C52单片机C语言调试之后再回答
  • ¥15 AT89C52单片机C语言串口助手发送数据包返回值
  • ¥15 C++数组中找第二小的数字程序纠错
  • ¥50 MATLAB APP 制作出现问题
  • ¥15 wannier复现图像时berry曲率极值点与高对称点严重偏移
  • ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)