<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Форум сайта MyRusakov.ru

Пользователи онлайн
03.11.2011 17:09:25 Пользователи онлайн Сообщение #1
Trust

Trust

Продвинутый

Продвинутый

Дата регистрации:
03.11.2011 17:04:04

Сообщений: 67

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


струкрура таблицы users у меня такова:


id
login
password
avatar(в базе хранится лишь адрес к картинке)
email
activation(при регистрации приходит письмо на почту в нем ссылка на сгенерированный запрос в базу на изменение этой таблицы с 0 на 1 , при значении 0, пользователю при попытке войти выдается сообщение о том что таких данных не существует)
date(время регистрации)

Я так понимаю что столбец с онлайном нужно будет включать именно в эту таблицу.

Прошу у вас помощи в реализации.
Профиль
03.11.2011 17:29:21 Пользователи онлайн Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Вот здесь я писал про реализацию кто онлайн: http://myrusakov.ru/php-who-online.html
То есть нужно создать лучше отдельную таблицу, где держать 3 поля: id, user_id, last_time.
Профиль
03.11.2011 17:40:24 Пользователи онлайн Сообщение #3
Trust

Trust

Продвинутый

Продвинутый

Дата регистрации:
03.11.2011 17:04:04

Сообщений: 67

Так я ведь сказал что читал ту статью. Знаний мне недостаточно чтоб сделать работу такого масштаба, можно поподробней с запросами в базу на обновление данных в этом столбце и вывод в определенный период этих данных?
Профиль
03.11.2011 17:43:17 Пользователи онлайн Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

В статье написан алгоритм. А реализация этого алгоритма это уже знание конкретного языка. Если Вы не можете реализовать этот алгоритм, значит, нужно изучать соответствующий язык. В данном случае, PHP и SQL.
Профиль
03.11.2011 17:45:22 Пользователи онлайн Сообщение #5
Trust

Trust

Продвинутый

Продвинутый

Дата регистрации:
03.11.2011 17:04:04

Сообщений: 67

Это понятно. Я поэтому и пришел к вам на сайт за помощью именно в реализации нескольких строк, вы можете помочь написать их мне? Выше написанное вами я понял.
Профиль
03.11.2011 17:50:32 Пользователи онлайн Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Когда человек заходит на сайт он автоматически удаляет тем самым всех старых пользователей. Так же он обновляет последнее посещение у себя, либо если его в таблице ещё нет, то добавляется. И так делает каждый человек на сайте. Про обновление записей написано здесь: http://myrusakov.ru/sql-row.html
Профиль
04.11.2011 17:13:57 Пользователи онлайн Сообщение #7
Trust

Trust

Продвинутый

Продвинутый

Дата регистрации:
03.11.2011 17:04:04

Сообщений: 67

Я послушал вас и сделал сделал такую запись после всех условий и проверок на логин и сесии :

(mysql_query("UPDATE users SET online='online' WHERE login='$login'",$db)

это все работает но...вот когда хочу сделать апдейт строки на ofline и написав такую строку :

mysql_query('UPDATE users SET online='ofline' WHERE login='$login' UNIX_TIMESTAMP(date) > 100',$db)

Работать не хочет и выдает ошибку такого типа:

Parse error: syntax error, unexpected T_STRING in...

Все перерыл, пробовал уже и кавычки внутренние заэкранировать ничего не помогает=( Подскажите что делать?
Профиль
04.11.2011 18:01:58 Пользователи онлайн Сообщение #8
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

mysql_query('UPDATE users SET online='ofline' WHERE login='$login' UNIX_TIMESTAMP(date) > 100',$db);

Представьте себя на месте PHP, как Вы думаете, где PHP должен взять закрывающую кавычку для первой? 'UPDATE users SET online=' - либо так, либо так 'UPDATE users SET online='ofline', либо так 'UPDATE users SET online='ofline' WHERE login='$login' UNIX_TIMESTAMP(date) > 100'. То же самое относится и к следующей кавычке. Видите, сколько вариантов Вы нагородили для PHP?

На основании этого исправьте запрос так, чтобы у PHP не возникало противоречий. Используйте двойные кавычки, а не только одинарные.
Профиль
04.11.2011 19:57:18 Пользователи онлайн Сообщение #9
Trust

Trust

Продвинутый

Продвинутый

Дата регистрации:
03.11.2011 17:04:04

Сообщений: 67

Как бы я не пробовал, какие бы я запросы не писал, все к одной ошибке...

Parse error: syntax error, unexpected T_STRING in Z:\home\127.0.0.1\www\index.php on line 30





<?php

session_start();

include ("bd.php";

$query="SELECT count(id) FROM `users`";
$result=mysql_query($query) ;
$num = mysql_fetch_row ($result);


if (isset($_COOKIE['auto']) and isset($_COOKIE['login']) and isset($_COOKIE['password']))
{
if ($_COOKIE['auto'] == 'yes') {
$_SESSION['password']=strrev(md5($_COOKIE['password']))."скрыто от пользователей";
$_SESSION['login']=$_COOKIE['login'];
$_SESSION['id']=$_COOKIE['id'];
}
}

if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{

$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result = mysql_query("SELECT id,avatar FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow = mysql_fetch_array($result);
}
(mysql_query("UPDATE users SET online='online' WHERE login='$login'",$db)
mysql_query ('UPDATE FROM users WHERE login="$login",online="online" UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 0";


?>
<html>
<title> Соц сеть=) </title>
Профиль
04.11.2011 20:10:05 Пользователи онлайн Сообщение #10
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

PHP чётко пишет, где здесь ошибка. Посмотрите поблизости. И увидите, что не хватает точки с запятой в 29-й строке. Вторая ошибка - это 'UPDATE FROM users WHERE login="$login",online="online" UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 0". Вы открываете одинарной кавычкой, а закрываете двойной.
Профиль