У меня эта проблема, которая сводит меня с ума.
У меня есть база данных MySQL, в которой есть таблица, содержащая текстовое поле. Я обращаюсь к таблице на PHP и пытаюсь поместить содержимое текстового поля для каждой строки в var.
Я делаю что-то вроде этого:
for ($i=0;$i<$nbrows;$i++){ $id = $data[$i]['ID']; $description = $data[$i]['DESCRIPTION']; $mystring .= '<div>'.$id.': '.$description.'</div>'; }
ОПИСАНИЕ – это мое текстовое поле.
Я расскажу подробности. Массив $ data построен из mysql_fetch_array ($ result). Я также попытался использовать объекты вместо этого, поскольку я использую mysql_fetch_object для всех моих других подпрограмм, но никаких изменений нет.
Во всяком случае, проблема в том, что: если я делаю «echo $ description»; то это работает. Я получаю данные в текстовом поле, как ожидалось. Проблема в том, что я не хочу выводить его напрямую, но добавляю его в конкатенированную строку, и это не работает. Что происходит в этом случае, кажется, это принятие описания $ для какого-либо массива или объекта. Чтобы сделать вышеприведенный пример, я заменил строку:
$mystring .= '<div>'.$id.': '.$description[0].'</div>';
Поэтому в конкатенированном строковом коде, если я рассматриваю $ description как массив, он работает, но, очевидно, я получаю только одну букву. (на самом деле это не массив, потому что я не могу его взорвать).
Я попробовал миллион вещей, но я просто не могу сделать эту работу, если я не использую эхо, но это не то, что я пытаюсь сделать.
Нет проблем с полями, которые не являются текстом.
Спасибо за любые идеи!
Нет ничего визуально неправильного с кодом, который вы вставили, возможно, если бы вы также могли добавить функцию выборки, мы могли бы помочь вам в дальнейшем.
Может быть, вы можете опубликовать var_dump
вашего массива $data
?
Вы пробовали $mystring .= "<div> $id : $description </div>";
Значит, ты знаешь, часы, потраченные на это, и тогда это становится очевидным после того, как я решила отправить на помощь. Это происходит только из-за кодирования / экранирования текста и ничего другого. Я просто не видел достаточно хорошо, где проблема на самом деле происходила.
Спасибо, что нашли время, чтобы прочитать и ответить!