2015-05-06 2 views
0

Моя 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.

+0

Взгляните на этот вопрос. Это должно решить проблему. https://stackoverflow.com/questions/514943/php-mysql-order-by-two-columns –

ответ

0
<?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']; 
    } 

    ?> 
+0

Что такое запрос mysql для этого? – poulokopri

+0

у вас есть тот же запрос, который в вопросе –

+0

Спасибо, но не ошибка, найденная в sql-запросе? Я думал, что, поскольку он выводит (даже не так), это должно быть что-то в запросе, а не в php – poulokopri

Смежные вопросы