Пересечение строки при использовании MySQL select

Я извлекаю текст, который хранится в моей базе данных, используя MySQL select, чтобы он отображался в форме, чтобы его можно было редактировать.

Когда форма настроена на строку, хранящуюся в базе данных, усекается до первого пробела, поэтому «Foo Bar» будет отображаться как «Foo». Этого не происходит при использовании тега.

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

В базе данных хранится все слово и никакого усечения не происходит. Я установил тип varchar(30), которого достаточно для хранения всего слова. Я также попытался изменить тип на текст, и у меня все еще есть проблема.

Я нигде не могу найти решение. Кто-нибудь знает, почему это может происходить?

 <?php echo "<input type=\"text\" name=\"title[" . $row["id"] . "]\" value=" . $row["title"] . ">"; ?>

person user1078385    schedule 30.08.2012    source источник
comment
Трудно сказать, откуда может появиться эта ошибка, потому что вы не разместили никакого кода. Обычно этого не не происходит, это все, что я могу сказать.   -  person hakre    schedule 30.08.2012
comment
Предоставьте нам SSCCE. Без какого-либо кода вам трудно помочь.   -  person Stefan Neubert    schedule 30.08.2012


Ответы (2)


Вы должны предоставить образец HTML-кода, созданного на вашей php-странице. Скорее всего, ваша строка значения не заключена в кавычки, например. ваша HTML-форма выглядит так:

<input type=text value=Foo Bar>

вместо

<input type=text value="Foo Bar">

Это произведет именно тот эффект, который вы видите


ОБНОВЛЕНИЕ: Судя по вашему примеру в комментарии, вам действительно не хватает кавычек:

Старый код с проблемой (отсутствуют кавычки вокруг значения атрибута value):

<?php echo "<input type=\"text\" name=\"title[" . $row["id"] . "]\"
  value=" . $row["title"] . ">"; ?>

Фиксированный код:

<?php echo "<input type=\"text\" name=\"title[" . $row["id"] . "]\"
 value=\"" . $row["title"] . "\">"; ?> 

Обратите внимание, что атрибут name уже был правильно процитирован, а атрибут value — нет.

person DVK    schedule 30.08.2012
comment
Я только что посмотрел, и это не цитировалось. Это может быть трудно сказать, когда вы используете эхо с помощью php. - person user1078385; 30.08.2012

Без соответствующего кода это всего лишь предположение, но вы устанавливаете атрибуты входного значения формы без использования кавычек?

Например, вы делаете это?

<input type="text" value=<? echo $value; ?> name="formInput" />

Вместо правильного синтаксиса, что это?

<input type="text" value="<? echo $value; ?>" name="formInput" />
person AndrewR    schedule 30.08.2012