星空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日
  • 展开全部

悬赏问题

  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因