Вывод информации из столбца в mysql

251
20 января 2017, 09:54

Как вывести информация из столбца в mysql. Есть столбик test, в котором присутствует подобное содержание id|15||id2|20||id3|25. Как вывести значение id отдельно, $id=15 $id2=20? Сейчас вывожу на DLE таким образов

$sql = $db->query( "SELECT * from dle_post where id=1);
$row = $db->get_row($sql);
echo $row['xfields'];

Мы получаем id|15||id2|20||id3|25, мне нужно вывести отдельно значение каждого id. Не массивом

Answer 1

Не знаю, чем вам не угодил массив, в нем как раз гораздо удобнее работать с неопределенным набором переменных.

...
$arr=array();
foreach(explode("||",$row['xfields']) as $x) {
  list($key,$val)=explode("|",$x);
  $arr[$key]=$val;
}
print_r($arr);
// Если нужны конкретные переменные можете их конечно получить:
$id=$arr['id']; $id2=$arr['id2']; ...
Answer 2

Чтобы выделить "поле нумер N", используйте:

-- выделить название
SUBSTRING_INDEX(SUBSTRING_INDEX(`field`,'|',3*N-2),'|',-1)
-- выделить значение 
SUBSTRING_INDEX(SUBSTRING_INDEX(`field`,'|',3*N-1),'|',-1)

Альтернативный вариант (для версии сервера 5.7.8 и старше):

CONCAT('{"', REPLACE(REPLACE(`field`,'||','","'),'|','":"') ,'"}')

и вот у тебя уже не хрень абы какая, а честный JSON...

READ ALSO
update двух таблиц одним запросом

update двух таблиц одним запросом

здравствуйте, помогите сформировать SQL запрос,

255
Изменить содержание iframe

Изменить содержание iframe

Чтобы получить контроль над содержанием подключенного к странице iframe был создан файл redirectphp с кодом:

386
Покажите пример из SQL [требует правки]

Покажите пример из SQL [требует правки]

Как брать значении из ключей в БД в php?

242
Fatal error: Class 'Redis' not found

Fatal error: Class 'Redis' not found

На сервере был установлен PHP 53 и к нему PHPRedis, на страницах обычный код <?php $redis = new Redis(); $redis->connect('127

338