PHP Mysql LIMIT 查询失败

标签 php mysql

我正在尝试通过包含 3 个表的联接查询获取消息 一切都按预期工作正常,但是当我尝试限制结果时,查询失败并且不返回任何内容

查询

    SELECT 
        P.patient_name, 
        DM.message, 
        DM.secsince, 
        DM.id, 
        DM.pid, 
        DM.did, 
        DM.mode, 
        DM.date, 
        DM.seen 
    FROM tbl_patient P, 
        tbl_doct D, 
        tbl_doct_messages DM 
    WHERE (DM.did = D.id AND DM.pid = P.id) 
        AND (DM.mode = 'in') 
        AND (D.id = '$id') 
    ORDER BY DM.secsince DESC;

这个查询工作正常,并给了我预期的结果

但是当我使用 LIMIT 时,它失败并且由于某种原因没有返回任何内容

查询

SELECT 
    P.patient_name, 
    DM.message, 
    DM.secsince, 
    DM.id, 
    DM.pid, 
    DM.did, 
    DM.mode, 
    DM.date, 
    DM.seen 
FROM tbl_patient P, 
    tbl_doct D, 
    tbl_doct_messages DM 
WHERE (DM.did = D.id AND DM.pid = P.id) 
    AND (DM.mode = 'in') 
    AND (D.id = '$id') 
ORDER BY 
   DM.secsince DESC; 
LIMIT=1;

这是整个 php 代码

<?php
include("conn.php");
if(mysqli_connect_error($con)) {
    echo "Failed To Connect";
}

$id = $_GET['id'];
$qry = "SELECT P.patient_name, DM.message, DM.secsince, DM.id, DM.pid, DM.did, DM.mode, DM.date, DM.seen 
        FROM tbl_patient P, tbl_doct D, tbl_doct_messages DM 
        WHERE (DM.did = D.id AND DM.pid = P.id) AND (DM.mode = 'in') AND (D.id = '$id') 
        ORDER BY DM.secsince DESC 
        LIMIT=1;";
$res = mysqli_query($con, $qry);
$flag = array();
while(($row = mysqli_fetch_array($res))){
    array_push($flag, $row);
}
echo json_encode($flag); 
mysqli_close($con);     
?>

正如您在这张图片中看到的,它给我的结果没有限制 enter image description here

但没有结果,因此当我添加限制时,mysqli_fetch_array 失败

enter image description here

为什么会发生这种情况?我基本上没有主意了。

最佳答案

更新您的查询

来自

SELECT 
    P.patient_name, 
    DM.message, 
    DM.secsince, 
    DM.id, DM.pid, 
    DM.did, DM.mode, 
    DM.date, DM.seen 
FROM 
    tbl_patient P, 
    tbl_doct D, 
    tbl_doct_messages DM 
WHERE 
    (DM.did = D.id AND DM.pid = P.id) AND 
    (DM.mode = 'in') AND (D.id = '$id') 
ORDER BY 
   DM.secsince DESC 
LIMIT=1

删除=

SELECT 
    P.patient_name, 
    DM.message, 
    DM.secsince, 
    DM.id, DM.pid, 
    DM.did, DM.mode, 
    DM.date, DM.seen 
FROM 
    tbl_patient P, 
    tbl_doct D, 
    tbl_doct_messages DM 
WHERE 
    (DM.did = D.id AND DM.pid = P.id) AND 
    (DM.mode = 'in') AND (D.id = '$id') 
ORDER BY 
   DM.secsince DESC 
LIMIT 1

关于PHP Mysql LIMIT 查询失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108415/

相关文章:

sql - 如何选择我的主键?

mysql - 从 mysql 表中的列中选择最大值、最小值、最后一个值

php - 将大数据文件导入 MysQL 的最佳方式

php - 对具有相同列值的行进行分组

php - 来自模型的 Magento SQL 查询

mysql - 基于具有多对连接的子查询返回 Yes/No 的 SQL 查询

mysql - 将两列相乘并在第三列中产生结果

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - 从亚马逊获取并存储 ISBN 信息

php - TCPDF - 内部 CSS 不工作