<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

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

Подписавшись по 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". Вы открываете одинарной кавычкой, а закрываете двойной.
Профиль Ответить