В базе в таблице есть ячейка с названием parms, в ней через enter занесены множества значений пример (данные регистрации): qst11=1 qst12=1 qst2=1 qst2name=rtew qst2city=rew qst3=1 qst3year= qst5=0 forg=gjgjgj shorg=trewtr inn=5555555555 kpp=666666666 не могу вывести на сайт в списки определенную переменную, команда <?php echo $row->params; ?> выводит все переменные из заданной ячейки, команда типа <?php echo $row->params['qst11']; ?> ну к примеру чтобы вывести параметр qst11 выводит только первую букву первого значения! нуждаюсь в вашей помощи))
Есть замечательное правило, которое гласит, что всякий раз, как хочется занести в поле массив - создавай отдельную таблицу для множества, а в поле вписывай id. Попытки пользовать поле как массив приводят к секасу с обработкой и выборкой данных. Вообще советую почитать про нормальные формы бд http://ru.wikipedia.org/wiki/Нормальная_форма p.s. Я предполагаю, что Вы не являетесь разработчиком БД, может есть смысл переписать немного структуру, если есть такая возможность. Либо пробовать парсить данные уже через PHP.
нету смысла, мне на работе поручили разобраться, а до этого этими скриптами и базой занималась какаято фирма, тоесть они этот бред понаделали, и хрен там чего исправишь, там уже пол базы забито клиентами((((
в ячейке mysql забито вместо одного параметра к примеру qst11=1 забито около 20 параметров через enter, естественно если делать стандартный запрос к базе на вывод информации из этой ячейки он выведет все что там написано вот пример: qst11=1 qst12=1 qst2=1 qst2name=yyyy qst2city=yyyyy qst3=1 qst3year= qst5=0 forg=eeeee shorg=443434 inn=1111111111 kpp=666666666 inv=yyy bank=yyy inv2=yyy bik=yyyy phoneoffice1=495 phoneoffice2=6666666 phone=84555435454 city2=selo r egion2=04000000000 dopinfoinf=jhj qst4serveqp= head_firstname=jhj head_lastname=jhfg head_patronymic=fhg contact_firstname=hjfgjh contact_lastname=ghj contact_patronymic=fghjgfhj вот из этого содержимого ячейки мне нужно вывести 3 параметра qst11=1 qst12=1 qst2city=yyyyy как сделать запрос так чтобы он выводил именно эти параметры там где вся эта бредовая информация заполняется в одну ячейку имеется такой код касающийся этого: $defvalue = $this->row['allparams']; это в самом начале формы! вот так заполняеться форма: <input type="checkbox" value="1" name="allparams[qst1]" id="allparamsqst1"<?php if($defvalue['qst1']):?> checked="checked"<?php endif; ?> /><br> <input type="checkbox" value="1" name="allparams[qst11]" id="allparamsqst11"<?php if($defvalue['qst11']):?> checked="checked"<?php endif; ?> /><strong>Газ</strong><br> <input type="checkbox" value="1" name="allparams[qst12]" id="allparamsqst12"<?php if($defvalue['qst12']):?> checked="checked"<?php endif; ?> /><strong>Дизель</strong></td> выводиться в просмотре таким же образом! а мне эти данные надо вывести в таблице на другой странице, я пробовал сделать также с помощью $defvalue но нечего не выводит, если в таблице напрямую обратиться к этой ячейки то он выводит весь список параметров!
Можно пойти от другой стороны! из ячейки информация у нас выводиться списком qst11=1 qst12=1 qst2=1 qst2name=yyyy qst2city=yyyyy qst3=1 и т.д. как с помощью php сделать так чтобы от отобразил из все этого к примеру значение 1 из параметра gst11= или отобразил yyyyy из параметра qst2city= ????
ky3mu4u Если между строками есть символ перевода строки - по нему можно разбить строку и загнать в массив. Используется функция explode() http://www.php.net/manual/ru/function.explode.php В качестве разделителя укажешь свой разделитель. А вообще тому, кто так данные загоняет, я бы руки поотрывал. Можно же было например сериализованный массив хранить, ну или вообще как Doglexx сказал - в отдельной таблице
да руки ябы им по отрывал)) но нечего не поделаешь это работа)) Я разобрался сам с этим жестоким выводом! Вот код: <?php $user_params = new JParameter($row->params); - это он сюда загружает всю информацию из ячейки params ?> <?php echo $row->params = trim($user_params->get('qst2name', '')); ?> - выводит информацию с переменной qst2name Все оказалось просто, только не сталкивался некогда с таким выводом! Спасибо тем кто проявил участие!