|
|
|
|
|
для: XPraptor
(08.09.2004 в 14:03)
| | Хм... хотя я наверное понял почему так... у меня в силу причин сейчас MySQL 3.23 стоит - наверное он так на запрос реагирует :))) | |
|
|
|
|
|
|
|
для: cheops
(08.09.2004 в 12:32)
| |
[в базе]
217.21.51.1 1 07.09.2004
168.255.23.23 1 08.09.2004
123.142.23.25 1 09.09.2004
122.122.122.1 1 10.09.2004
241.232.232.1 2 07.09.2004
217.11.11.2 2 08.09.2004
222.11.22.11 3 07.09.2004
147.252.232.11 3 08.09.2004
165.236.215.32 3 09.09.2004
123.12.241.2 3 10.09.2004
123.245.123.1 4 07.09.2004
253.23.123.12 4 08.09.2004
[в запросе]
122.122.122.1 1 10.09.2004
123.142.23.25 1 09.09.2004
168.255.23.23 1 08.09.2004
217.21.51.1 1 07.09.2004
217.11.11.2 2 08.09.2004
241.232.232.1 2 07.09.2004
123.12.241.2 3 10.09.2004
147.252.232.11 3 08.09.2004
165.236.215.32 3 09.09.2004
222.11.22.11 3 07.09.2004
253.23.123.12 4 08.09.2004
123.245.123.1 4 07.09.2004
|
| |
|
|
|
|
|
|
|
для: XPraptor
(08.09.2004 в 11:38)
| | Я использовал вот эту базу - получил бардак для первого пользователя. Если не сложно пришлите свой дамп. | |
|
|
|
|
|
|
|
для: cheops
(07.09.2004 в 18:52)
| | Не знаю почему у тебя IP первый попавшийся, у меня все в порядке с ним, он именно от этой строки с последним временем посещения, так как группировка именно по этим двум полям. | |
|
|
|
|
|
|
|
для: Kirill
(06.09.2004 в 20:26)
| | К примеру вот так. Жаль одним запросом не получается :(
<?
// выбираем авторов тем, чтобы затем исключить их из следующего запроса
$query1="Select id_theme, id_author, author from posts where parent_post=0 group by id_theme";
$res = mysql_query($query1);
if($res)
{
while($result = mysql_fetch_array($res))
{
// запрашиваем темы, минимальное время ответа. Автор поста не должен быть равен автору темы.
$query2="Select id_theme, min(time) as min_time from posts where id_author<>".$result['id_author']." and id_theme=".$result['id_theme']." group by id_theme";
$resposts = mysql_query($query2);
if($resposts)
{
while($result2 = mysql_fetch_array($resposts))
{
echo $result2["id_theme"]." | ";
echo $result2["min_time"]."<br>";
}
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: XPraptor
(07.09.2004 в 18:23)
| | Здесь IP-адрес не соответствует MAX(time_last) - я тоже сначала так хотел... :) Т.е. время-то максимальное, а IP-адрес первый попавшийся...
PS К тому же в этой ветке вторая проблема, надо было бы пост повыше запостить.... | |
|
|
|
|
|
|
|
для: cheops
(07.09.2004 в 17:30)
| | Я вот провернул такую схему у меня все работает:
$rez=mysql_query( "SELECT id_author, ip, MAX(time_last) AS [mx_tm] FROM ips GROUP BY id_author, ip");
$tmp_auth=0;
$auth=0;
while($row=mysql_assoc_fetch($rez)){
$auth=$row["id_author"];
$mx_tm=$row["mx_tm"];
$ip=$row["ip"];
if($auth!=$tmp_auth){print "Time=".$mx_tm."IP=".$ip;}
$tmp_auth=$auth;
}
Результат запроса возвращает все строки но они отсортированы по убыванию максимального времени, поэтому каждая первая строка с новым ид автора это и есть время последнего посещения. Enjoy :-) | |
|
|
|
|
|
|
|
для: Kirill
(07.09.2004 в 16:58)
| | Да, я тоже долго привыкал :))), что программой могут одновременно по 100 человек пользоваться, а сама программа выполняется чёрт знает где и совсем не так как на локальной машине :))) | |
|
|
|
|
|
|
|
для: cheops
(07.09.2004 в 16:45)
| | Обидно, но чтож.. веб программирование немного отличается от привычного :) | |
|
|
|
|
|
|
|
для: Kirill
(07.09.2004 в 15:59)
| | А... Т.е. авторы разные... Всё равно в один запрос не получится :( И даже помоему не получится обойтись без рекурсивного спуска в PHP, так как MySQL не поддерживает внешних ключей (в версии 4). Нужно будет разворачивать каждую тему вычисляя время между предыдущим и последующим сообщением и помещать их в массив... Мда... вся эта конструкция будет долго работать :))) Если захотите это применить на практике, следует сразу вычислять временную разницу, при добавлении сообщения и помещать в базу данных, чтобы разнести нагрузку во времени... | |
|
|
|
|