Пример массива:
Array ( [user_exists] => 0 [user_info] => Array ( [user_id] => 4 [user_subnet_id] => 0 [user_username] => 4 [user_photo] => 0_2117.jpg [user_fname] => Ivan [user_lname] => Raguzin [message_id] => 387 [message_status] => 1 [message_body] => Здразуй [message_date] => 1320730941 [user_displayname] => Ivan Raguzin ) [profile_info] => [level_info] => [subnet_info] => [usersetting_info] => [user_salt] => [moderation_privacy] => 1 [session_info] => [user_displayname] => Ivan Raguzin [user_displayname_short] => Ivan )
Через цикл всё выводится как полагается, но что делать если я хочу вывести определённые данные, например "user_id", без цикла в отдельную переменную?
Как то так?
$переменная_в_которой_будет_сохранён_результат_из_массива = $массив['user_id']
Спустя 1 час, 13 минут, 59 секунд (2.12.2011 - 09:34) forza написал(а):
самый простой вариант -> $var = $array['user_info']['user_id'];
Спустя 36 минут, 39 секунд (2.12.2011 - 10:11) xxxLOGIATxxx написал(а):
Блин, бесит уже, не могу тупо вывести всего одну строку из базы.
Цитата |
самый простой вариант -> $var = $array['user_info']['user_id']; |
Пусто
Спустя 6 минут, 13 секунд (2.12.2011 - 10:17) xxxLOGIATxxx написал(а):
Получаем массив из класса:
Затем пытаемся вывести отдельную переменную следующими способами:
И нифига.
А сам массив c помощью print_r($message_view) выводится и пишет:
$message_view = $user->get_user_message_info();
Затем пытаемся вывести отдельную переменную следующими способами:
$message_body = $message_view->user_info['message_date'];
$message_body = $message_view['user_info']['message_date'];
echo $message_body;
print_r($message_body);
И нифига.
А сам массив c помощью print_r($message_view) выводится и пишет:
Цитата |
Array ( [0] => SEUser Object ( [is_error] => 0 [user_exists] => 0 [user_info] => Array ( [user_id] => 4 [user_subnet_id] => 0 [user_username] => 4 [user_photo] => 0_2117.jpg [user_fname] => Ivan [user_lname] => Raguzin [message_id] => 387 [message_status] => 1 [message_body] => Здразуй [message_date] => 1320730941 [user_displayname] => Ivan Raguzin ) [profile_info] => [level_info] => [subnet_info] => [usersetting_info] => [user_salt] => [moderation_privacy] => 1 [session_info] => [user_displayname] => Ivan Raguzin [user_displayname_short] => Ivan ) ) |
Спустя 27 минут, 51 секунда (2.12.2011 - 10:45) Игорь_Vasinsky написал(а):
не читабильно.
выводи так
выводи так
echo '<pre>' . print_r($message_view, 1) . '</pre>';
Спустя 1 минута, 4 секунды (2.12.2011 - 10:46) killer8080 написал(а):
xxxLOGIATxxx
а так?
а так?
$message_body = $message_view->user_info->message_date;
Спустя 57 секунд (2.12.2011 - 10:47) forza написал(а):
$var = $message_view[0]['user_info']['user_id'];
а так
?
а так

Спустя 6 минут, 41 секунда (2.12.2011 - 10:54) xxxLOGIATxxx написал(а):
Игорь_Vasinsky
Цитата |
Array ( [0] => SEUser Object ( [is_error] => 0 [user_exists] => 0 [user_info] => Array ( [user_id] => 4 [user_subnet_id] => 0 [user_username] => 4 [user_photo] => 0_2117.jpg [user_fname] => Ivan [user_lname] => Raguzin [message_id] => 387 [message_status] => 1 [message_body] => Здразуй [message_date] => 1320730941 [user_displayname] => Ivan Raguzin ) [profile_info] => [level_info] => [subnet_info] => [usersetting_info] => [user_salt] => [moderation_privacy] => 1 [session_info] => [user_displayname] => Ivan Raguzin [user_displayname_short] => Ivan ) ) |
killer8080, пусто
forza, страница вообще не загрузилась
Спустя 18 минут, 17 секунд (2.12.2011 - 11:12) bulgakov написал(а):
У вас просто путаница с массивами и объектами, приведите все к какому-то одному типу данных.
Спустя 3 минуты, 45 секунд (2.12.2011 - 11:16) bulgakov написал(а):
В 0 ячейке массива у вас объект SEUser Object, может попробовать так?
и уже из $array брать то что нужно.
$array = (array)$message_view[0];
и уже из $array брать то что нужно.
Спустя 50 минут, 36 секунд (2.12.2011 - 12:06) xxxLOGIATxxx написал(а):
$массив[] =& $message_user->user_info['message_body']
Каким образом из этого массива достать message_body?
Спустя 1 час, 37 минут, 23 секунды (2.12.2011 - 13:44) xxxLOGIATxxx написал(а):
Ну неужели никто не знает?
Спустя 9 минут, 38 секунд (2.12.2011 - 13:53) m4a1fox написал(а):
Я бы посоветовал вам дать больше информации по интересующему вас вопросу!
Спустя 9 минут, 21 секунда (2.12.2011 - 14:03) Zerstoren написал(а):
Может так?
$message_user->user_info->message_body;
если не прокатит, попробуйте
(string) $message_user->user_info->message_body;
Если нет, воспользуйтесь var_dump, он больше инфы дает по данным.
$message_user->user_info->message_body;
если не прокатит, попробуйте
(string) $message_user->user_info->message_body;
Если нет, воспользуйтесь var_dump, он больше инфы дает по данным.
Спустя 4 минуты, 44 секунды (2.12.2011 - 14:07) xxxLOGIATxxx написал(а):
m4a1fox, в $массив вводятся различные данные следующим образом:
Как теперь из этого массива выдрать эти самые данные, например ту же самую 'message_body' чтобы занести её в отдельную переменную и вывести в браузер?
Функцию я расписывать не буду потому что она всех запутает.
$массив[] =& $message_user->user_info['message_body']
Как теперь из этого массива выдрать эти самые данные, например ту же самую 'message_body' чтобы занести её в отдельную переменную и вывести в браузер?
Функцию я расписывать не буду потому что она всех запутает.
Спустя 6 минут, 17 секунд (2.12.2011 - 14:14) xxxLOGIATxxx написал(а):
Zerstoren, вот что выдал var_dump:
array(1) { [0]=> object(SEUser)#24 (12) { ["is_error"]=> int(0) ["user_exists"]=> int(0) ["user_info"]=> array(11) { ["user_id"]=> string(1) "4" ["user_subnet_id"]=> int(0) ["user_username"]=> string(1) "4" ["user_photo"]=> string(10) "0_2117.jpg" ["user_fname"]=> string(4) "Ivan" ["user_lname"]=> string(7) "Raguzin" ["message_id"]=> string(3) "387" ["message_status"]=> string(1) "1" ["message_body"]=> string(14) "Здразуй" ["message_date"]=> string(10) "1320730941" ["user_displayname"]=> string(12) "Ivan Raguzin" } ["profile_info"]=> NULL ["level_info"]=> NULL ["subnet_info"]=> NULL ["usersetting_info"]=> NULL ["user_salt"]=> NULL ["moderation_privacy"]=> int(1) ["session_info"]=> NULL ["user_displayname"]=> string(12) "Ivan Raguzin" ["user_displayname_short"]=> string(4) "Ivan" } }
Спустя 1 минута, 36 секунд (2.12.2011 - 14:15) killer8080 написал(а):
$message_body = $message_view[0]->user_info->message_date;
Спустя 1 минута, 10 секунд (2.12.2011 - 14:17) xxxLOGIATxxx написал(а):
killer8080, неа, пусто
Спустя 2 минуты, 9 секунд (2.12.2011 - 14:19) xxxLOGIATxxx написал(а):
Всё это дело работает на шаблонизаторе Smarty и по следующей конструкции он выводит всё как надо:
Но мне нужно получить данные чтобы выводить их отдельно, вне цикла, без {section}.
{section name=test loop=$message_view}
{$message_view[test]->user_info.message_body}
{/section}
Но мне нужно получить данные чтобы выводить их отдельно, вне цикла, без {section}.
Спустя 6 минут, 19 секунд (2.12.2011 - 14:25) killer8080 написал(а):
xxxLOGIATxxx
делаешь так?
делаешь так?
$message_view = $user->get_user_message_info();
echo $message_view[0]->user_info->message_date;
Спустя 6 минут, 50 секунд (2.12.2011 - 14:32) xxxLOGIATxxx написал(а):
killer8080, так и делал, вообще никаких результатов
Спустя 4 минуты, 6 секунд (2.12.2011 - 14:36) killer8080 написал(а):
Странно
, должно работать при той структуре, что ты показал.

Спустя 2 минуты, 16 секунд (2.12.2011 - 14:38) xxxLOGIATxxx написал(а):
killer8080, я вот тоже сижу и думаю чё за фигня =\
Спустя 6 минут, 24 секунды (2.12.2011 - 14:45) killer8080 написал(а):
xxxLOGIATxxx
покажи этот свой код, наверно все таки что то не то делаешь.
покажи этот свой код, наверно все таки что то не то делаешь.
Спустя 6 минут, 18 секунд (2.12.2011 - 14:51) xxxLOGIATxxx написал(а):
Функция в которой мы соединяем таблицы пользователей и сообщений для получения данных:
Затем мы на отдельной странице вызываем эту самую функцию, передавая в неё переменную с id-сообщения ($message_id) и пытаемся вывести эти самые проблемные данные:
function get_user_message_info($message_id)
{
global $database, $user;
$sql = "
SELECT MESSAGES.*, USERS.*
FROM se_messages MESSAGES
JOIN se_users USERS
ON MESSAGES.message_authoruser_id = USERS.user_id
WHERE MESSAGES.message_id = $message_id
LIMIT 1";
$resource = $database->database_query($sql);
$user_info = $database->database_fetch_assoc($resource) ;
$user_message_info = array();
$message_user = new SEUser();
$message_user->user_info['user_id'] = $user_info['user_id'];
$message_user->user_info['user_username'] = $user_info['user_username'];
$message_user->user_info['user_photo'] = $user_info['user_photo'];
$message_user->user_info['user_fname'] = $user_info['user_fname'];
$message_user->user_info['user_lname'] = $user_info['user_lname'];
$message_user->user_info['message_id'] = $user_info['message_id'];
$message_user->user_info['message_status'] = $user_info['message_status'];
$message_user->user_info['message_body'] = $user_info['message_body'];
$message_user->user_info['message_date'] = $user_info['message_date'];
$message_user->user_displayname();
$user_message_info[] =& $message_user;
unset($message_user);
// RETURN ARRAY
return $user_message_info;
}
Затем мы на отдельной странице вызываем эту самую функцию, передавая в неё переменную с id-сообщения ($message_id) и пытаемся вывести эти самые проблемные данные:
$message_view = $user->get_user_message_info($message_id);
$message_body = $message_view[0]->user_info->message_body;
echo $message_body;
Спустя 11 минут, 10 секунд (2.12.2011 - 15:02) killer8080 написал(а):
тю блин, message_info это ж массив
я правда так и не понял зачем ты возвращаемый объект заворачиваешь в массив, в функции get_user_message_info.
$message_body = $message_view[0]->user_info['message_body'];
я правда так и не понял зачем ты возвращаемый объект заворачиваешь в массив, в функции get_user_message_info.
Спустя 5 минут, 50 секунд (2.12.2011 - 15:08) xxxLOGIATxxx написал(а):
killer8080, заработало, спасибо добрый человек! +1
Цитата |
я правда так и не понял зачем ты возвращаемый объект заворачиваешь в массив, в функции get_user_message_info. |
Это уже недостаток опыта, сам не знаю зачем )
Ты про $user_message_info = array();? Убрать его?
Спустя 7 минут, 6 секунд (2.12.2011 - 15:15) xxxLOGIATxxx написал(а):
Тут есть просто один нюанс, я ведь не зря прописал $message_user = new SEUser();, это дело как бы переделывает переменные, переписывает адреса фотографий и ссылок, приводя их в нужный формат, а если всё делать именно так как сделали сейчас, то она как бы перестаёт функционировать
Спустя 5 минут, 42 секунды (2.12.2011 - 15:21) xxxLOGIATxxx написал(а):
Например, выводя это дело в цикле по такому типу:
То выводится уменьшенный вариант фотографии пользователя
{section name=test loop=$message_view}
<img src='{$message_view[test]->user_photo("./images/nophoto.gif", TRUE)}' width='60' height='60' border='0' alt='' />
{/section}
То выводится уменьшенный вариант фотографии пользователя
Спустя 5 минут, 12 секунд (2.12.2011 - 15:26) killer8080 написал(а):
Цитата (xxxLOGIATxxx @ 2.12.2011 - 14:08) |
Ты про $user_message_info = array();? Убрать его? |
да, оно там лишнее. Выкинь это
$user_message_info[] =& $message_user;
unset($message_user);
нет смысла создавать массив с одним элементом, сразу возвращай $message_user