Как я могу получить текстовое поле от mysql таблицы базы данных, но не весь текст, просто некоторые приблизительно 40 символов.
Это может быть сделано в sql, или я должен сделать это с помощью php?
в основном то, что я пытаюсь сделать, показать первые x символы и затем позволить пользователю нажать на это для просмотра полного содержания.
SELECT LEFT(field, 40) AS excerpt FROM table(s) WHERE ...
см. Функцию () [)
.
Как правил большого пальца , вы никогда не должны делать в PHP, что MySQL может сделать для вас. Подумайте об этом таким образом: вы не хотите передать ничего более, чем строго необходимые от БД к запрашивающим приложениям.
Редактировать Если вы собираетесь использовать все данные на одной и той же странице (т. Е. Без промежуточного запроса) чаще всего нет, нет причин не Чтобы получить полный текст одновременно. (См. Комментарии и Ответ Верге .)
SELECT LEFT(MY_COLUMN, 40) FROM MY_TABLE
Функция в справочном руководстве MySQL:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_left
Вы можете сделать это в SQL, так как другие показаны уже.
Но если вы также [11179906] также хотите показать полный текст, если пользователь нажимает на нем, вам также нужно полный текст, и кажется, что пустая база данных отправит вам короткий и полный текст Отказ Таким образом, вы можете схватить полный текст и написать некоторый код, чтобы показать короткий текст и полный текст, когда пользователь нажимает на него.
$result = mysql_query('SELECT text FROM table');
$row = mysql_fetch_row($result);
echo '<div onclick="alert(\''.$row[0].'\');">'.substr($row[0], 0, 40).'</div>';
Вы можете сделать что-то приятнее, когда вы нажимаете на него (вместо Alert ()
). Также вы можете сделать некоторые PHP, чтобы увидеть, если оригинал короче 40 символов и обрабатывает такие ситуации.