星空2020 2023-09-17 21:25 采纳率: 64.1%
浏览 3
已结题

php针对查询结果进行判断

如下判断无效(当res不为空是echo1,反之echo res1),该如何修改?

<?php
header('content-type:application/json');

//$id= $_GET['id'];
//$name= $_GET['name'];
 
$id= '1223';
$name= 'LILY';

// 连接数据库
require '../connect/pdo_connect_db.php';
    
 $res = $pdo->query("SELECT * FROM (
    SELECT a.subject,a.type,b.teacher FROM table1 a 
    LEFT JOIN table2 b ON a.subject= b.subject WHERE a.subject
    = (SELECT subject FROM table3 WHERE id ='$id' ORDER BY operation_time DESC LIMIT 1)
    )y WHERE name= '$name'")->fetchall(PDO::FETCH_ASSOC);    
 $res1 = $pdo->query("SELECT a.subject,a.type,b.teacher FROM table1 a 
LEFT JOIN table2 b ON a.subject= b.subjectWHERE a.subject
= (SELECT subject FROM table3 WHERE id='$id' ORDER BY operation_time DESC LIMIT 1)")->fetchall(PDO::FETCH_ASSOC);

if($res) {
    echo "1";
} else{
    echo json_encode($res1);
} 

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-19 02:14
    关注

    【以下回答由 GPT 生成】

    为了优化这段代码中的查询结果判断逻辑,我会进行以下几个步骤的修改:

    1. SELECT语句中,使用COUNT(*)函数来查询满足条件的记录数,而不是查询所有的字段。这样可以减少不必要的资源浪费。
    $query = "SELECT COUNT(*) FROM (
        SELECT a.subject,a.type,b.teacher FROM table1 a 
        LEFT JOIN table2 b ON a.subject = b.subject WHERE a.subject = 
        (SELECT subject FROM table3 WHERE id = '$id' ORDER BY operation_time DESC LIMIT 1)
        ) y WHERE name = '$name'";
    $count = $pdo->query($query)->fetchColumn();
    
    1. 使用PDOStatementrowCount()方法来获取查询结果的行数,从而判断结果是否为空。
    if($count > 0) {
        echo "1";
    } else {
        echo json_encode($res1);
    }
    
    1. 对于第二次查询$res1,可以直接使用前面已经查询过的结果$res,避免重复的查询操作,提高代码执行效率。
    if($count > 0) {
        echo "1";
    } else {
        echo json_encode($res);
    }
    

    这样,我们通过减少查询字段、使用rowCount()方法以及避免重复查询操作,实现了对代码的优化。现在,代码的查询结果判断逻辑更加简洁和高效。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月16日
  • 已采纳回答 10月11日
  • 创建了问题 9月17日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题