Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: получение информации о пользователе из Сессии ил БД
 
 автор: ZetRider   (12.03.2012 в 22:42)   письмо автору
 
 

Добрый вечер.

Задумался над количеством запросов к бд, решил поинтересоваться у вас, какой метод лучше.

На моем сайте реализована регистрация посетителей.
Информацию о зарегистрированном пользователе к примеру его Имя Фамилию или Возраст достаю из базы данных своими функциями. К примеру:


<?php
// $id = номер пользователя
echo user_first_name($id);
echo 
user_last_name($id);
echo 
user_age($id);
?>


Данная информация мелькает частенько на страницах сайта.

Подумал написать функцию которая бы при входе пользователя на сайт записывала его данные в сессию, и данные мы уже брали из сессии. К примеру


<?php
// На всех страницах сайта
function user_session_info($id){
    if(!isset(
$_SESSION['user_info'][$id])) {
        
$_SESSION['user_info'][$id]['first_name'] = user_first_name($id);
        
$_SESSION['user_info'][$id]['last_name'] = user_last_name($id);
        
$_SESSION['user_info'][$id]['age'] = user_age($id);
    }
}
?>


Когда мене нужна будет информация о пользователе буду получать из сессии user_info а не БД.

Возможно это бредовая идея но интересно стороннее мнение, какой вариант лучше и чем чревато использование сессий в данном случае?

  Ответить  
 
 автор: Valick   (12.03.2012 в 23:09)   письмо автору
 
   для: ZetRider   (12.03.2012 в 22:42)
 

Возможно это бредовая идея но интересно
этой идее "сто лет в обед", это классика жанра, нет ни одной книги по РНР в которой не описана эта ситуация
как у вас с книгами?

  Ответить  
 
 автор: ZetRider   (13.03.2012 в 08:40)   письмо автору
 
   для: Valick   (12.03.2012 в 23:09)
 

Valick, с книгами все в порядке,
php 4 - Д.Котеров
php 5 - Д.Н. Колисниченко
php 5 - А.В. Олищук, А.Н. Чаплыгин

видимо не обращал внимание на этот метод в то время когда их читал, сейчас же больше помогает поиск в интернете, на много быстрее.

Гость, есть такая функция но данные не кешируются, подскажите пожалуйста как правильно мне найти информацию по кешированию данных вызываемой функции.

  Ответить  
 
 автор: Valick   (13.03.2012 в 09:49)   письмо автору
 
   для: ZetRider   (13.03.2012 в 08:40)
 

есть такая функция но данные не кешируются
а нафиг она нужна? читайте книги там все описано
данные заносятся в сессию один раз при авторизации

  Ответить  
 
 автор: Гость   (13.03.2012 в 07:21)   письмо автору
 
   для: ZetRider   (12.03.2012 в 22:42)
 

Более того - вместо кучи функций с получением имени, возраста и т.д. гораздо лучше сделать одну которая будет возвращать массив/объект со всеми данными по пользователю одним запросом к БД. (Хотя это не всегда верно).

Правда возможно у вас так и сделано и результат этой функции кешируется (хотя бы на время выполнения скрипта), а user_first_name, user_last_name, user_age лишь берут из кеша нужную информацию. Если у вас все так - то все в порядке.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования