php - 如何修复此 mySQL 代码以显示正确的输出?

标签 php mysql

我的mySQL表如下

id - hash - page - timestamp
1 - ig35sdf89 - page1 - 2015-05-06 12:03:54
2 - ig35sdf89 - page2 - 2015-05-06 12:06:54
3 - ig35sdf89 - page1 - 2015-05-06 12:08:54
4 - xgd98rgf - page1 - 2015-05-06 12:10:54
5 - aaaat43gr - page3 - 2015-05-06 12:12:54

我的问题是使用什么 mySQL 查询来显示类似我将按时间戳显示每个哈希顺序的路径的内容:

ig35sdf89  - page1 - 2015-05-06 12:08:54
           - page2 - 2015-05-06 12:03:54
           - page1 - 2015-05-06 12:06:54

xgd98rgf  - page1 - 2015-05-06 12:10:54

aaaat43gr  - page3 - 2015-05-06 12:12:54

这是到目前为止的代码

$sql= mysql_query("SELECT IF(@tempHash = `hash`, '', @tempHash := `hash`) `hash`, page, `timestamp` 
FROM behaviour
JOIN (SELECT @tempHash := '')s
ORDER BY `timestamp`
");

 while($row = mysql_fetch_array($sql)) {
     echo '<tr><td>'.$row[hash].'</td><td>'.$row[page].'</td><td>'.$row[timestamp].'</td></tr>';
 }

问题在于,即使运行,输出也有错误。哈希abc的路径(页面)被分割。我的意思是它显示来自 abc 哈希的多个页面,然后用户 xxx123 显示 xxx123 页面,然后继续显示用户 abc。我想要的是 abc 页面、时间戳的完整列表,然后继续 xxx123 等等。

我注意到,分割是由于时间戳而进行的。

如果 user1 的页面时间戳为 14:10:12,下一个为 14:10:30,而 user2 的页面时间戳为 14:10:20,则会中断user1,显示user2,然后继续显示user1

最佳答案

    <?php

$sql= mysql_query("SELECT IF(@tempHash = `hash`, '', @tempHash := `hash`) `hash`, page, `timestamp` 
FROM behaviour
JOIN (SELECT @tempHash := '')s
ORDER BY `hash`
");

    $xhash = "";
     while($row = mysql_fetch_array($sql)) {
        if($xhash != $row['hash']){
           echo '<tr><td>'.$row[hash].'</td><td>'.$row[page].'</td><td>'.$row[timestamp].'</td></tr>';
        }else{
            echo '<tr><td></td><td>'.$row[page].'</td><td>'.$row[timestamp].'</td></tr>';
        }
        $xhash = $row['hash'];
     }

    ?>

关于php - 如何修复此 mySQL 代码以显示正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30080416/

相关文章:

php - 在 wordpress wpdb 中返回插入的行 ID

php - 这个结构化字符串的名称是什么?

php - MySQL "REPLACE INTO"使用 SELECT 拉取一个字段

php - 帮我为 iou Web 应用程序设计数据库架构

java - 无法将数据存储到数据库

javascript - 在codeigniter中使用ajax添加数据后更新select

javascript - AngularJS:在文件上传时接收发布的数据

php - 将外部网页加载到我的页面而不重定向到不同的 URL

mysql,对不同的值进行分组

mysql - MySQL WorkBench 和 SQL WorkBench 之间的核心区别是什么?