выборка из массива

#1 20 сентября 2012 в 10:20
зря удалил вчерашнюю тему, с вопросом про запрос… думал что справился :))

вообщем пытаюсь выбрать дополнительные поля из профиля пользователя и вывести в нужное место.

запрос исправил, в шаблон кинул. все работает. но выводит целиком данные которые содержаться в поле formsdata. а мне надо выбрать только те данные которые содержит форма под id 1. как выдернуть из массива значение ?

пытаюсь вот так вот

  1. $formsdata = $inCore->yamlToArray($user['formsdata']);
  2. $hob = $formsdata[$field['1']];
$hob далее уходит в шаблон и не выводит ничего.

хотя через print_r ($user['formsdata']); данные из массива показывает, и напрямую в шаблон отдает.
ошибка где-то здесь...$formsdata[$field['1']]; я не правильно выдергиваю?
#2 20 сентября 2012 в 10:25
что такое $field? — в эту переменную что-то запихивается?

кидайте результат
print_r ($user['formsdata']); — что она выводит? — тогда сразу можно будет сказать как надо написать…
#3 20 сентября 2012 в 10:33
выводит

— 1: Поле1 2: Поле2 3: Поле3

тобишь все что как в таблице содержится. в таблице вот так

---
1: Поле1
2: Поле2
3: Поле3

$field['1'] — я так думал что получу значение с id 1 — это 1: Поле1. переменную не объявлял нигде
#4 20 сентября 2012 в 11:08


выводит

— 1: Поле1 2: Поле2 3: Поле3

тобишь все что как в таблице содержится. в таблице вот так

---
1: Поле1
2: Поле2
3: Поле3

$field['1'] — я так думал что получу значение с id 1 — это 1: Поле1. переменную не объявлял нигде

picaboo

$field — значек доллара означает, что это переменная и если хотите из нее что-то вытащить, то перед этим надо туда "что-то" положить) ну это как ящик… а в вашем ящике ничего нет и php даже не знает о его существовании

  1. $formsdata[1];
— это должно показать первый элемент массива, если я правильно понял
  1. $formsdata[1][1];
или так

Сейчас нет времени сильно вникать, с работы пишу) попробуйте

или $formsdata[0][0];
#5 20 сентября 2012 в 11:16
что показывает print_r ($user['formsdata'])? там массив?

Если массив, то зачем yamlToArray делается?

Если не так, то print_r($formsdata); что говорит?

$formsdata[1];

SJen
покажет второй элемент массива
#6 20 сентября 2012 в 11:35

Если массив, то зачем yamlToArray делается?

Fuze
в движке, в паре мест всего formsdata, обрабатывается и именно так подсмотрел оттуда.

print_r выводит — 1: Поле1 2: Поле2 3: Поле3
#7 20 сентября 2012 в 11:41
хм… если выкинуть весь хлам что я понаписал и выводить в шаблон напрямую

$usr['hobby'] = $usr['formsdata']['5']; то показывает 5 символ… осталось всего чуть чуть :)) надо вывести с 7 по… чорт… мне нужен пхп для чайников, пойду поищу...:(
#8 20 сентября 2012 в 11:41

print_r выводит — 1: Поле1 2: Поле2 3: Поле3

picaboo
значит там yaml и
$formsdata = $inCore->yamlToArray($user['formsdata']);
нужно делать.
print_r($formsdata); что говорит?
#9 20 сентября 2012 в 11:48

print_r($formsdata); что говорит?

Fuze
Array ( )
#10 20 сентября 2012 в 12:10
picaboo, перефразируйте ваш вопрос и что в файлике нужно смотреть?
#11 20 сентября 2012 в 12:14
строки 340-360

вопрос: как вывести поле из компонента форм под айди 1
#12 20 сентября 2012 в 12:26

данное поле в компоненте форм идет под айди 1

picaboo
эта форма, где поле, не привязана к профилю?
#13 20 сентября 2012 в 12:29
привязана и заполняется пользователем в профиле
#14 20 сентября 2012 в 12:37
выкинуть 339 строка
  1. $formsdata = $inCore->yamlToArray($user['formsdata']);
со строки 351
  1.  
  2. if ($is_users){
  3. while($usr = $inDB->fetch_assoc($result)){
  4. $rownum++;
  5. $usr['avatar'] = usrLink(usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']), $usr['login'], $menuid);
  6. $usr['nickname'] = cmsUser::getProfileLink($usr['login'], $usr['nickname']);
  7. $usr['flogdate'] = $inCore->dateFormat($usr['flogdate'], true, true);
  8. $usr['status'] = usrStatusList($usr['id'], $usr['flogdate'], false, $usr['gender']);
  9. $usr['num'] = $rownum + ($page-1)*$perpage;
  10. $formsdata = $inCore->yamlToArray($usr['formsdata']);
  11. $usr['hobby'] = $formsdata[1]; //значение первого поля
  12.  
или так…
#15 20 сентября 2012 в 12:46
Йооо!!

заработало!!

надо было не [0][0] указывать, а [1]


Всем спасибо за помощь :)
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.