Куда пропадают данные из запроса?

 
Посетитель
small user social cms
Сообщений: 74
фрагмент /components/users/frontend.php:
Код PHP:
  1. $sql = "SELECT u.*, p.*, u.id as id,
  2. DATE_FORMAT(u.regdate, '%d-%m-%Y') as fregdate,
  3. DATE_FORMAT(u.logdate, '%d-%m-%Y') as flogdate,
  4. DATE_FORMAT(u.birthdate, '%d') as bday,
  5. DATE_FORMAT(u.birthdate, '%m') as bmonth,
  6. DATE_FORMAT(u.birthdate, '%Y') as byear,
  7. IFNULL(p.gender, 0) as gender
  8. FROM main_users u
  9. INNER JOIN main_user_profiles p ON p.user_id = u.id
  10. WHERE u.id = '$id' AND u.is_locked = 0
  11. LIMIT 1
  12. ";
  13. $result = $inDB->query($sql);
  14.  
  15. if (!$inDB->num_rows($result)){ cmsCore::error404(); }
  16.  
  17. $usr = $inDB->fetch_assoc($result);
  18. echo $sql . '<hr>' . $usr['icq'];
  19.  
Вывод:
Код SCREEN:
  1. SELECT u.*, p.*, u.id as id, DATE_FORMAT(u.regdate, '%d-%m-%Y') as fregdate, DATE_FORMAT(u.logdate, '%d-%m-%Y') as flogdate, DATE_FORMAT(u.birthdate, '%d') as bday, DATE_FORMAT(u.birthdate, '%m') as bmonth, DATE_FORMAT(u.birthdate, '%Y') as byear, IFNULL(p.gender, 0) as gender FROM main_users u INNER JOIN main_user_profiles p ON p.user_id = u.id WHERE u.id = '4' AND u.is_locked = 0 LIMIT 1
то есть, ниже ничего не выводится, только $sql+hr

Если скопировать в SQL phpMyAdmin, запрос исправно выдает нужные данные, включая заполненное поле icq.

1. Куда делось?
2. Где прочитать про механизм формирования данных? Есть такая литература?
3. (риторический) И почему у меня минуту назад всё работало? :)

P.S.:
Что делал до этого: правил шаблоны профиля, добавлял поля в frontend.php
Посетитель
small user social cms
Сообщений: 74
восстановил frontend.php на первоначальный, мониторю {$usr.icq} в шаблоне профиля - пусто :(
Реклама
cms
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
BSB, в коде всё ровно. Единственное логическое объяснение того, что $usr['icq'] ничего не показывает - в Базе данных у данного юзера не заполнено это поле.
Посетитель
small user social cms
Сообщений: 74
В том-то и дело, что заполнено sad
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
BSB, вместо echo $sql . '<hr>' . $usr['icq'];
напишите
print_r($usr);
и посмотрите полностью, что возвращает ваш запрос
Посетитель
small user social cms
Сообщений: 74
Да писал уже, ага... Что характерно: часть переменных выдает, часть нет. При этом никакой последовательной зависимости и данные в базе существуют.
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
Давайте Ваш запрос сократим до вот такого:
Код PHP:
  1. $sql = "SELECT u.*, p.imageurl
  2. FROM main_users u
  3. LEFT JOIN main_user_profiles p ON p.user_id = u.id
  4. WHERE u.id = 1 LIMIT 1";
и посмотрим, что выдаст.
Посетитель
small user social cms
Сообщений: 74
Ленивый:
посмотрим, что выдаст
фрагмент вывода:
Код PHP:
  1. @realbsb.ru [icq] => [jabber] =>
таким образом, всё по-прежнему
Редактировалось: 2 раз (Последний: 11 октября 2012 в 10:11)
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
покажите полностью, что выводит print_r($usr); при таком запросе
Посетитель
small user social cms
Сообщений: 74
хм, по невнимательности u.id = 1 в условии оставил. А так с u.id = '$id' нормально выдает:
Код SCREEN:
  1. Array ( [id] => 5 [group_id] => 1 [login] => game [nickname] => realgame [password] => 4297f44b13955235245b2497399d7a93 [email] => [email protected] [icq] => 123123123 [jabber] => [email protected] [googletalk] => [email protected] [googlechat] => Хей, ла-ла-лэй! [skype] => gameboy [sip] => 12345 [vk] => http://vk.com/game [facebook] => http://facebook.com/game [twitter] => http://twitter.com/game [mailru] => http://my.mail.ru/game [ok] => http://odnoklassniki.ru/game [phone] => +79876543210 [regdate] => 2012-09-19 00:29:04 [logdate] => 2012-10-11 12:25:21 [birthdate] => 0000-00-00 [is_locked] => 0 [is_deleted] => 0 [is_logged_once] => 1 [rating] => 0 [points] => 0 [last_ip] => 192.168.0.1 [status] => [status_date] => 0000-00-00 00:00:00 [invited_by] => [invdate] => [openid] => [imageurl] => ) 1
P.S.: Перепроверил с оригинальным - данные по-прежнему съедаются
Посетитель
small user social cms
Сообщений: 74
С SQL я на "Вы", поэтому ннада выспаться. Возьму таймаут.
Если есть соображения, буду рад увидеть их здесь!
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 484
BSB, ну вот. Теперь маленькими шажками, добавляйте к этому запросу строки, пока не придёте к начальному варианту, а по пути смотрите. что запрос возвращает, чтобы выцепить в каком моменте возникает ваша проблема
Посетитель
small user social cms
Сообщений: 74
Спасибо! Разобрался.

А произошло вот что: вчера я внес новые поля в user_profiles. Потом, когда сообразил, что личные данные храняться в users, создал новые поля там. А старые удалить забыл. Сейчас со свежей головой осознал...
Редактировалось: 1 раз (Последний: 11 октября 2012 в 18:43)
Посетитель
small user social cms
Сообщений: 74
Тема закрыта.
Ленивый, плюсег
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: