2016-12-08 1 views
0

У меня возникла проблема, когда я не могу выбрать первые 500 символов каждого сообщения. (Сообщения хранятся в базе данных MySQL). Код я прямо сейчас:Возвратите только первые 500 символов текста

$link = mysqli_connect('localhost', 'jfairbanks_dbuser', 'password'); 
mysqli_select_db($link, 'jfairbanks_database'); 
$results = mysqli_query($link, "SELECT post FROM Users where verified = 1 LIMIT 0 , 10"); //this displayes all the posts that have been verified 
while($record = mysqli_fetch_assoc($results)) { 
$post = $record['post']; 
print $post; 
} 
    mysqli_free_result($results); 
mysqli_close($link); 
?> 

Этот код выбирает все символы всех сообщений, которые проверяются, и это хорошо, но мне нужно, чтобы ограничить длину поста, который отображается. (Я хочу видеть только первые 500 символов).

Я пробовал использовать LEFT(post, 500) среди прочего, но это не сработало.

+1

«попробовал использовать LEFT (post, 500) среди других вещей здесь, но это не сработало». как это не сработало? – e4c5

+0

это дало мне эту ошибку: Неопределенный индекс: сообщение в * мой сайт здесь * –

+0

Вы, вероятно, забыли использовать псевдоним ... Что-то вроде: 'SELECT LEFT (post, 500) AS post ...' – Nicarus

ответ

0

Как я уже упоминал в комментариях, вам необходимо предоставить псевдоним для вашего поля после использования функции LEFT() в MySQL.

Ваш запрос будет выглядеть следующим образом: SELECT LEFT(post,500) AS post FROM Users ...

альясингом его post теперь вы можете получить доступ к нему в ассоциативном массиве, как вы делали раньше:

$post = $record['post'];

Без псевдонима в sql-запрос, массив не имеет ключа post и генерирует исключение, которое вы получили.

1

Что вам нужно, это LEFT функция MySQL

SELECT LEFT(post,500) AS post FROM Users where verified = 1 LIMIT 0 , 10 

Я даже не знаю PHP имел функцию левого до вашего комментария? Или, возможно, это было то, что вы написали? Обычный способ взять подстроку в PHP - использовать функцию substr. Но получение подстроки в mysql более эффективно, потому что переносится меньше данных.

Также обратите внимание на добавление сообщения AS для псевдонима генерируемого столбца для публикации, чтобы его можно было найти в вашем PHP-коде.

+0

OP уже пробовал это. Там была ошибка: «$ post = $ record ['post'];' и 'post' не существовало, потому что оно не было псевдонимом. – Nicarus

+0

* «Я даже не знал, что PHP имеет левую функцию до вашего комментария?» * - Это потому, что это не функция php, это функция mysql; вы даже включили в него URL-адрес mysql. P.s .: Не мой нижний план здесь. –

+0

@Nicarus посмотреть обновление – e4c5

Смежные вопросы