Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> users online 
V
    Опции темы
fakeman
Дата 1.6.2009, 04:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Всю ночь отвазился так и не решил проблему с удалением и выводом нормального числа в такой задаче как "Скока юзеров и онлайн и кто именно" 
Вот код:

Код

$datentime = time() - 10;
mysql_query("DELETE * FROM online WHERE dnt<".$datentime." LIMIT 1" );
$res = mysql_query("SELECT * FROM online WHERE dnt > '$datentime'");
while($b = mysql_fetch_array($res))
{
echo "<br>".$b['id_user'].", last click at ".date('d.m.Y // H:i:s', $b['dnt'])."<br>";
}
$res1 = mysql_query("UPDATE online SET dnt='".time()."' WHERE id_user='".$id_user."'");

if(mysql_affected_rows() != 1)
{
$res2 = mysql_query("INSERT INTO online  VALUES ('$id_user','".time()."')");

}
 $res3 = mysql_query("SELECT * FROM online ");
$res_r = mysql_fetch_row( $res3 );
$users_online = count($res_r);
echo "<br>".$users_online;


Почему запись не удаляется через 10сек из базы ?
И почему если 1 узер онлайн то он пишет что их 2 :( в чем проблема с 
Код

$res3 = mysql_query("SELECT * FROM online ");

П.с. таблица(online) такая : 2 столбца id_user(уникальный key, INT(100)) и dnt(VARCHAR(255)) 
PM MAIL   Вверх
Рыжий
Дата 1.6.2009, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 2
Всего: 20



Код

mysql_query("DELETE * FROM online WHERE dnt<".$datentime." LIMIT 1" );

Зачем LIMIT 1? Уберите его.
Код

$res = mysql_query("SELECT * FROM online WHERE dnt > '$datentime'");

Тут, в принципе, можно и без WHERE dnt > '$datentime'.
И нужно добавить:
Код

$res = mysql_query("SELECT * FROM online WHERE dnt > '".$datentime."' AND id_user=".$id_user." LIMIT 1");


Код

$res2 = mysql_query("INSERT INTO online  VALUES ('$id_user','".time()."')");

$id_user - числовой ведь:
Код

$res2 = mysql_query("INSERT INTO online  VALUES (".$id_user.",'".time()."')");


PM MAIL ICQ   Вверх
youri
Дата 1.6.2009, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



а что mysql адекватно воспринимает unix timestamp'ы, без FROM_UNIXTIME()?
PM   Вверх
Рыжий
Дата 1.6.2009, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 2
Всего: 20



youri, тут MySQL вообще не работает с Timestamp, dnt ведь VARCHAR(255) а в него идет time()

fakeman, кстати если уж такое юзать, то лучше обявить dnt числовым. А еще лучше TIMESTAMP`ом

PM MAIL ICQ   Вверх
fakeman
Дата 1.6.2009, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Так довайте по порядку с самого начала создаю в базе таблицу с 2 столбцами: id_user(VARCHAR(100) U_KEY) dnt(TIMESTAMP)
так ? 
Далее как сделать запись в базу что бы в столбике dnt не было нулей а время. 
PM MAIL   Вверх
bars80080
Дата 1.6.2009, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(fakeman @  1.6.2009,  14:38 Найти цитируемый пост)
id_user(VARCHAR(100)

а почему строка? id_user разве не число?

Цитата(fakeman @  1.6.2009,  14:38 Найти цитируемый пост)
Далее как сделать запись в базу что бы в столбике dnt не было нулей а время.  

Код

insert into `table_name` (id_user) values (значение)


PM MAIL WWW   Вверх
youri
Дата 1.6.2009, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Цитата(Рыжий @  1.6.2009,  11:31 Найти цитируемый пост)
youri, тут MySQL вообще не работает с Timestamp, dnt ведь VARCHAR(255) а в него идет time()

да, не заметил  smile 

p.s. а еще в mysql есть такая функция как NOW()
PM   Вверх
fakeman
Дата 1.6.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Цитата(bars80080 @  1.6.2009,  14:58 Найти цитируемый пост)
а почему строка? id_user разве не число?

Упс опичатался тут 
Цитата(fakeman @  1.6.2009,  14:38 Найти цитируемый пост)
_user(VARCHAR(100) U_KEY)

у меня в базе Int стоит.

Код

$id_user = $_SESSION['id'];

$userq = mysql_query("SELECT * FROM online WHERE id_user='".$id_user."'");
$array = mysql_fetch_row($userq);
if(!isset($array['id_user']))
{
mysql_query("INSERT INTO online (id_user) VALUES ('".$id_user."')");
}
else
{
echo "Обновить таблицу";
}


Чего то я запутался и не пойму почему он не выводит "Обновить таблицу" если в таблице есть запись.
П.с. как сделать обновление таблицы.
PM MAIL   Вверх
Shark
Дата 1.6.2009, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Цитата

echo "Обновить таблицу";

Код

mysql_query("UPDATE online SET dnt=now() WHERE id_user='".$id_user."'")


Это сообщение отредактировал(а) Shark - 1.6.2009, 16:01


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 1.6.2009, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Он почему то не делает UPDATE да и вообше он не доходит то else если в таблице есть хуть одна запись, разве здесь есть какая то проблема 
Цитата(fakeman @  1.6.2009,  15:51 Найти цитируемый пост)
if(!isset($array['id_user']))
 ?

PM MAIL   Вверх
Shark
Дата 1.6.2009, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Код

$id_user = $_SESSION['id'];

$userq = mysql_query("SELECT * FROM online ");
$array = mysql_fetch_row($userq);
if($array['id_user'] != $id_user)
{
mysql_query("INSERT INTO online (id_user) VALUES ('".$id_user."')");
}
else
{
mysql_query("UPDATE online SET dnt=now() WHERE id_user='".$id_user."'")
}


попробуй так

Это сообщение отредактировал(а) Shark - 1.6.2009, 23:26


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 1.6.2009, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



если написать такое.
Код

$id_user = $_SESSION['id'];
$userq = mysql_query("SELECT * FROM online ");
$array = mysql_fetch_row($userq);
if($array['id_user'] != $id_user)
{
echo "1";
mysql_query("INSERT INTO online (id_user) VALUES ('".$id_user."')");
}
else
{
echo "2";
mysql_query("UPDATE online SET dnt=now() WHERE id_user='".$id_user."'");
}


По идеи если есть запись в таблице то должен делать UPDATE и выдать на экран 2 ? Но он всё время выводит тока 1 :(
PM MAIL   Вверх
Shark
Дата 1.6.2009, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



блин.. конечно...незаметил у тя функцию mysql_fetch_row
Код

$id_user = $_SESSION['id'];
$userq = mysql_query("SELECT * FROM online ");
$array = mysql_fetch_row($userq);
if($array[0] != $id_user)
{
echo "1";
mysql_query("INSERT INTO online (id_user) VALUES ('".$id_user."')");
}
else
{
echo "2";
mysql_query("UPDATE online SET dnt=now() WHERE id_user='".$id_user."'");
}




--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Рыжий
Дата 1.6.2009, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 2
Всего: 20



Код

$userq = mysql_query("SELECT * FROM online ");
$array = mysql_fetch_row($userq);
if($array[0] != $id_user)


Это можно реализовать так:

Код

$userq = mysql_query("SELECT COUNT(*) FROM online WHERE `id_user` = ".$id_user." ");
$array = mysql_fetch_row($userq);
if($array[0] > 0){
// Есть
}
else {
// Нет
}

PM MAIL ICQ   Вверх
fakeman
Дата 2.6.2009, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Shark
Рыжий
Эта проблема решина, спасибо. Теперь как бы грамотно удалить из базы запись катора я не обновлялась n времени допустим 1мин. 

Код

mysql_query ("DELETE FROM online WHERE dnt < DATE_SUB(NOW(), INTERVAL 1 MINUTE)");

PM MAIL   Вверх
Shark
Дата 2.6.2009, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Код

$time=time()-60;
mysql_query ("DELETE FROM online WHERE dnt < $time)");


удалятся все записи... где dnt меньше минуты

Это сообщение отредактировал(а) Shark - 2.6.2009, 00:16


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 2.6.2009, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Код

$time=time()-60;
mysql_query ("DELETE FROM online WHERE dnt < $time)");
$userq = mysql_query("SELECT * FROM online WHERE dnt > '".$time."' AND id_user=".$id_user." LIMIT 1");
$array = mysql_fetch_row($userq);
if($array[0] != $id_user)
{
echo "1";
mysql_query("INSERT INTO online (id_user) VALUES ('".$id_user."')");
}
else
{
echo "2";
mysql_query("UPDATE online SET dnt=now() WHERE id_user='".$id_user."'");
}


Он из базы не удаляет запись после того как проходит минута :(

п.с.
Код

mysql_query ("DELETE FROM online WHERE dnt < $time)");

там скобка лишняя(после  $time) или так и надо если надо то почему ? 
Но я пробовал и без скобки всёравно не удаляет из базы запись.

Может не совпадают типы с базой в dnt ? у меня там написано например 2009-06-02 00:23:01

Это сообщение отредактировал(а) fakeman - 2.6.2009, 00:36
PM MAIL   Вверх
Shark
Дата 2.6.2009, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Цитата

 у меня там написано например 2009-06-02 00:23:01

если у тя пишется в формате гггг-мм-дд чч:мм:сс, то конечно не совпадают.. time() - в ней находится кол-во секнуд прошедших с 1 января 1970 года


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 2.6.2009, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Так что тоггда переделать столбец dnt в INT или VARCHAR ? 
PM MAIL   Вверх
Shark
Дата 2.6.2009, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



fakeman, в INT... я вообще стараюсь все числовые функции писать в INT


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 2.6.2009, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Код

$time=time()-60;
mysql_query ("DELETE FROM online WHERE dnt < $time");
$userq = mysql_query("SELECT * FROM online WHERE dnt > '".$time."' AND id_user=".$id_user." LIMIT 1");
$array = mysql_fetch_row($userq);
if($array[0] != $id_user)
{
echo "1";
mysql_query("INSERT INTO online VALUES ('".$id_user."','".time()."')");
}
else
{
echo "2";
mysql_query("UPDATE online SET dnt='".time()."' WHERE id_user='".$id_user."'");
}

При таком коде вроде всё работает но смушает одно. Если пользователь 1 ползает где то по сайту и бац он выходит из браузера то он будет весеть в базе 1 до тех пор пока его кто то да не заменит допустим зайдёт другой пользователь и обновит базу т.е. старый удалиться а новый появиться. Получается1 юзер всегда будет я ко бы онлайн ? 

и как отталкиваясь от id_user( он U_Key) вывести подщёт пользователей онлайн ? 

Код

$res = mysql_query( "SELECT * From online");
$result_array = mysql_fetch_row( $res );
$online = count( $result_array );
echo "<br>".$online;

PM MAIL   Вверх
Shark
Дата 2.6.2009, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Цитата

и как отталкиваясь от id_user( он U_Key) вывести подщёт пользователей онлайн ? 

используй mysql_num_rows()

... если бот зайдет... пользователь удалится

Рекомендую посмотреть FAQ там есть код on-line пользователей


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 2.6.2009, 03:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Цитата(Shark @  2.6.2009,  01:28 Найти цитируемый пост)
Рекомендую посмотреть FAQ там есть код on-line пользователей 


ДА он помог, спасибо smile (Сколько пользователей на сайте)

Осталась сделать что бы выводить юзеров кто именно онлайн.
У меня 2 таблицы - 1 online 2 users.
Значит надо сделать запрос на выделение id username из users где id = $id_user
закинуть в массив, вывсти.
Примерно я так сделал:
Код

$resul = mysql_query("SELECT id,username FROM users WHERE id = '".$id_user."'");
$arr = mysql_fetch_array($resul);
$username = $arr['username'];
$id = $arr['id'];
do
{
echo "<a href='/phpsite/members.php?id=".$id."'>".$username."</a>";
}
while($arr = mysql_fetch_array($resul));


Но как вы уже поняли выведиться тока 1 юзер нейм. как сделать что бы вывел всех кто есть в таблице online в столбце id_user ?
PM MAIL   Вверх
Shark
Дата 2.6.2009, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



смотри...
при авторизации, ты заносишь пользователя в таблицу online... а потом просто выводишь!

Код

$onlines=mysql_query("SELECT * FROM online");
while($online=mysql_fetch_row($onlines))
           {
                   echo $online[1];
           }


ну это так... набросок
P.S. кстати, в том коде который ты смотрел.. вроде есть часть которая выводит всех, кто он-лайн

Это сообщение отредактировал(а) Shark - 2.6.2009, 07:10


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 2.6.2009, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Shark,  smile  супер, спасибо, получилось smile

Код

$onlines=mysql_query("SELECT * FROM online");
while($online=mysql_fetch_row($onlines))
           {    
        $resul = mysql_query("SELECT id,username FROM users WHERE id = '".$online['0']."'");
        $arr = mysql_fetch_array($resul);
        $username = $arr['username'];
        $id = $arr['id'];
        echo "<a href='/phpsite/members.php?id=".$id."'>".$username."</a><br>";
           }

 smile 
PM MAIL   Вверх
Shark
Дата 2.6.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



fakeman, а зачем ты делаешь сравнение id'ов, а потом вывод???
выводи всех пользователей из таблицы online и все... 
если пользователь удачно авторизовался, то он занесся в таблицу online, все кто в этой таблице, они и есть у тебя в таблице users... поэтому я не вижу смысла данные из таблицы сравнивать с данными другой таблицы...


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 2.6.2009, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Shark, ты об этом ? 
Код

WHERE id = '".$online['0']."'");


Гхмм ну 2 таблицы в одной тока ийд юзера и дата в другой айди, ник нейм, дата рождения.. вообшем всё о юзере.
Ну и схожи эти 2 таблицы тока id по этому делал сравнение что бы вывести ссылку на юзера и его ник нейм.. 

А вот как ты предложил я как то не понемаю.. 


Цитата(Shark @  2.6.2009,  13:56 Найти цитируемый пост)
выводи всех пользователей из таблицы online и все... 

Это будет так как ты писал ранее
Код

$onlines=mysql_query("SELECT * FROM online");
while($online=mysql_fetch_row($onlines))
           {
                   echo $online['0']"<br>";
           }

он выведит все айди пользователей кто в ондайне в столбик.
Пример:
1
6
102
Что бы не выводить пользователем на сайт айдишники  потому и беру из таблицы users ник нейм.. smile

П.с. 
Код

$id = $arr['id'];

можно и не делать
а в выводе просто написать так
Код

echo "<a href='/phpsite/members.php?id=".$online['0']."'>".$username."</a><br>";

походу одно и тоже.

Это сообщение отредактировал(а) fakeman - 2.6.2009, 15:51
PM MAIL   Вверх
Shark
Дата 2.6.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



ааа... я просто думал что ты в online хранишь ник и id пользователя... 
тебе всего-то надо 4 столбца в той таблице
id     |       id_user      |         nick          |             timestamp


тогда и мой вариант будет не плохsmile

в своем варианте я писал так:
Код

echo $online[1];


а как у тебя
Код

echo $online[1]"<br>";

выводится ничего не будет, т.к. после echo $online[1] надо поставить точку, и потом писать "<br>"


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 2.6.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Цитата(Shark @  2.6.2009,  15:58 Найти цитируемый пост)
echo $online[1];

Ну он тоже не будет работать :Р
у меня табица online такак
id_user      |         dnt        

та что надо   
Код

echo $online['0']."<br>";


Цитата(Shark @  2.6.2009,  15:58 Найти цитируемый пост)
а как у тебя

Я опечатался и забыл точечку. Сорри smile

П.с.
 В таблице users у меня так
id     |      username      |         password          |            realname          |            и так далее... 
PM MAIL   Вверх
Shark
Дата 2.6.2009, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Цитата

Цитата(Shark @  2.6.2009,  15:58 ) 
echo $online[1]; 


Ну он тоже не будет работать :Р
так он будет работать.. и будет выводить время!

ну это твое право писать лишний код.... но я думаю, что если пользователь в онлайне, то он толжен быть и в этой таблице! все равно же он удаляется


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 2.6.2009, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Возник вопрос вот этот файл(online.php) где весь код надо include по всему сайту ? Тока так о будет "засикать" активен пользователь или нет ?
PM MAIL   Вверх
Shark
Дата 3.6.2009, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



ну ты можешь написать на каждой страничке код:
Код

UPDATE online SET dnt WHERE id_user='".$id_user."'

и все..... тогда в этой (online) таблице будет обновляться время тогда, когда пользователь зашел на ту или иную страницу


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 3.6.2009, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Цитата(Shark @  3.6.2009,  01:16 Найти цитируемый пост)
ну ты можешь написать на каждой страничке код:

Ну хотя да, можно но я так потом подумал и решил что у меня всёравно на сайте будет на каждой странице показываться кто онлайн.

Столкнулся ещё кое с чем по поводу вывода юзеров
допустим есть не таблица а дивы
Код

<div class="a">
    <div id="1">
Вывадить здесь первого юзера
    </div>
    <div id="12">
Тут выводить следующего
    </div>
        
    <div style="clear: both;"></div>
</div>

т.е. задумка получить такое 
|---------------------------------|
|  user1                user2     |
|  user3                user4     |
|  user5                user6     |
|_____________________|

И было бы супер по алфавиту smile

PM MAIL   Вверх
Shark
Дата 3.6.2009, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



т.е. ты хочешь чтоб у тебя выводилось в 2 столбика... в левом нечетные, а вправом четные?


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
fakeman
Дата 3.6.2009, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Цитата(Shark @  3.6.2009,  20:42 Найти цитируемый пост)
т.е. ты хочешь чтоб у тебя выводилось в 2 столбика... в левом нечетные, а вправом четные? 


Именно smile
PM MAIL   Вверх
fakeman
Дата 5.6.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Ну вот вроде реализовал эту задумку тока пришлось не через divы как хотелось а через таблицы
вышло примерно так:
Код

<table width=100%>
$t=0;
..... // выбор из таблице юзера занесение его в массив и т.д.
if ($t == 0) { print "<tr>"; } $t++;
print "<td width='50%'>
   // Вывод юзера
</td>
 ";
if ($t == 2) { print "</tr>"; $t=0; } 
</table>

 Вот smile
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.