Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将消息显示为按主题分隔的对话_Php_Mysql - Fatal编程技术网

Php 将消息显示为按主题分隔的对话

Php 将消息显示为按主题分隔的对话,php,mysql,Php,Mysql,我有一张桌子,我试着以对话和主题分组的方式显示消息 当前查询是: SELECT * FROM contact WHERE to='bob' ORDER BY date DESC if(mysql_num_rows($query) > 0) while ($row = mysql_fetch_array($query)){ $id = $row["id"] ; $from = $row["from"] ; $subject = $ro

我有一张桌子,我试着以对话和主题分组的方式显示消息

当前查询是:

SELECT * FROM contact WHERE to='bob' ORDER BY date DESC

if(mysql_num_rows($query) > 0)
    while ($row = mysql_fetch_array($query)){
        $id = $row["id"] ;
        $from = $row["from"] ;
        $subject = $row["subject"] ;
        $message=$row["message"];
        $date=$row["date"];

<?php echo $subject;?>
<?php echo $message;?>
<?php echo $from;?>
<?php echo $date;?>
这让我明白:

主题:足球

嗨!迈克2016-08-15 06:43:35发来的

主题:足球

你怎么样?迈克2016-08-15 06:45:00发来的

尝试按主题分组,但只显示一个结果

SELECT * FROM contact WHERE to='bob' GROUP BY subject ORDER BY date DESC
感谢您对如何按主题显示消息组的帮助

例如:

主题:足球

嗨!迈克2016-08-15 06:43:35发来的

你怎么样?迈克2016-08-15 06:45:00发来的

让我们玩吧!迈克2016-08-15 06:46:10发来的

主题:学校


怎么样。。Mike在2016-08-16 08:40:00的采访中说,这似乎是你想要的,但你并不完全清楚你想要的结果

SELECT * 
FROM contact 
WHERE to='bob' 
ORDER BY subject, date
然后,您的代码可以这样更改,以便仅在类别更改时打印它

if(mysql_num_rows($query) > 0) {
    $last_subject = NULL;
    while ($row = mysql_fetch_array($query)){

        if ( $last_subject !== $row["subject"] ) {
            echo $row["subject"];
            $last_subject = $row["subject"];
        }

        echo $row["message"];
        echo $row["from"];
        echo $row["date"];
    }
}

请建立模式并给我们链接。问题显然是您的
php
代码中没有提供…该表上不存在名为
idAccount
的列!谢谢RiggsFolly。我们不知道您实际想要的结果是什么?通过查询,只需相应地修改您的代码,以便在类别更改时仅打印类别
if(mysql_num_rows($query) > 0) {
    $last_subject = NULL;
    while ($row = mysql_fetch_array($query)){

        if ( $last_subject !== $row["subject"] ) {
            echo $row["subject"];
            $last_subject = $row["subject"];
        }

        echo $row["message"];
        echo $row["from"];
        echo $row["date"];
    }
}