Xwab
Форумыnavigate_nextПрограммирование на PHP

как составить код так чтоб не было запросов в цыкле
Сообщения
шизофф

Всем привет!
Есть вот такой код
[php:1:362e9477b8]
<?
#--- ЕСЛИ ПОЛЬЗОВАТЕЛЬ В ОНЛАЙНЕ ТО ВЫВОДИМ ЕГО ---#
$req = mysql_query("SELECT * FROM online WHERE laikas > '$timeout' and usr!='$log'");

While($who = mysql_fetch_array($req))
{

#--- ВЫВОДИМ СТРАНИЦУ НА КОТОРОЙ СЕЙЧЯС ПОЛЬЗОВАТЕЛЬ ---#
$reqs = mysql_query("SELECT * FROM `mesto` WHERE `usr` = '$who[usr]' LIMIT 1");
$mesto = mysql_fetch_array($reqs);

#--- ВЫВОДИМ ИНФОРМАЦИИ ОБ ЭТОМ ПОЛЬЗОВАТЕЛИ ---#
$reqcl = mysql_query("SELECT * FROM `users` WHERE `usr` = '$who[usr]'");
$usr = mysql_fetch_array($reqcl);

#--- ЕСЛИ ПОЛЬЗОВАТЕЛЬ НА СТРАНИЦЕ "main" ТО ПОКАЗЫВАЕМ ЕГО ---#
if($mesto[page] == 'main'){
echo $usr[log].'|'.$mesto[page];
}
}
?>

[/php:1:362e9477b8]

этот код выводит всех юзеров что в онлайне и находятся на странице "main"
так вот как мне составить этот код чтоб не было запросов в цыкле.
так как запросы в цыкле замедляют загрузку страниц насколько я знаю.
Может кто то поможет?

17 Апр 2012, 19:51
Ink

SELECT * FROM online.o, mesto.m, users.u WHERE o.laikas > '$timeout AND m.usr='$who[usr]' AND u.usr='$who[usr]' GROUP BY u.usr
добавлено спустя:
Возможно неправильный где-то, но в этом направлении копать надо.

17 Апр 2012, 20:50
oee

шизофф, пиши все в одну таблицу
добавлено спустя 20 секунд:
Ink пишет:
"SELECT * FROM online.o, mesto.m, users.u WHERE o.laikas > '$timeout AND m.usr='$who[usr]' AND u.usr='$who[usr]' GROUP BY u.usr
добавлено спустя:
Возможно неправильный где-то, но в этом направлении копать надо."

этот селект тоже будет ресурсоемким

17 Апр 2012, 21:04
san

это обычный join. Не лучшая реализация для этой задачи. Автору следует послушать oee и писать все данные в таблицу юзера. У тебя чрезмерная нормализация пошла уже.

17 Апр 2012, 21:55
Nnz2

"SELECT * FROM online o
LEFT JOIN mesto m ON m.usr = o.usr
LEFT JOIN users u ON u.usr = o.usr
WHERE o.laikas > '$timeout' and o.usr!='$log'

17 Апр 2012, 22:01
шизофф

Всем спасибо!
Чтоб не плодить темы я задам еще один вопрос.
Как можно скрыть исходный код страницы от пользователя?
ну например чтоб выводился не код разными символами, или хоть часть кода.
так как не хочется чтоб слили дизайн с сайта)

18 Апр 2012, 10:51
mazaHELL

шизофф, никак

18 Апр 2012, 10:58
PeraX

шизофф, можно запретить нажатие пкм на сайте, но это не спасет от сканеров

18 Апр 2012, 11:03
mazaHELL

PeraX, ага, и сразу защиту от ctrl+u

18 Апр 2012, 11:07
Nnz2

Можно выдавать код страницы в base64 и на яваскрипт преобразовывать.
Но если очень надо, то все равно стыбзят.

18 Апр 2012, 13:30
Ответить на тему