|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Вывод информации из MySQL |
|
|
Вывод информации из MySQL
|
Новый участник Сообщения: 28 |
Всех приветствую.
Есть база MySQL, таблица и ячейка в которой находится большой текс. Подскажите пожалуйста как вывести от туда информацию допустим на 20 строк, а остальное сформировать на 2 страницу и так далее. Есть похожая тема но там описывается как сделать максимальное количество символов на странице, а хотелось бы именно ограничение по строкам. http://forum.oszone.net/post-807556.html |
|
Отправлено: 10:04, 30-12-2008 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать SELECT * FROM `my_table` ORDER BY `id` LIMIT 0, 20;
SELECT * FROM `my_table` ORDRE BY `id` LIMIT 20, 20; и т.д. В LIMIT'е сначала с какой строки, а потом - сколько строк. |
Отправлено: 10:32, 30-12-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать К сожалению не работает.
Для эксперимента в нес в ячейку текст 1<br>2<br>3<br>4<br>5 и какой бы LIMIT не выставлял, текс выводится полностью |
Отправлено: 11:31, 30-12-2008 | #3 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Ааа... Я не правильно прочитал задание.
Вроде бы MySQL не может делить текст на строки. Как насчёт php-функции array explode (string separator, string string [, int limit]) Разбиваем возвращаемое значение на строки и выводим строки перебором нужных значений массива. |
Отправлено: 11:41, 30-12-2008 | #4 |
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать Но за этот пример тоже спасибо, я заодно и в нем разобрался )
А эта функция по другому работает это когда в базе не сколько строк table id text 1 1-text 2 2-text 3 3-text 4 4-text 5 5text $content = mysql_query ("SELECT * FROM content LIMIT 0, 2;", $db); $contenT = mysql_fetch_array ($content); do { echo "<br>".$content['text']; } while ($txT = mysql_fetch_array ($txt)); вот в таком случае выведется из базы 2 строчки 1-text 2-text |
|
Отправлено: 11:44, 30-12-2008 | #5 |
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать А вот explode() я чего то не догнал, он же получается. что каждое слово помещает в массив, тем самым мы можем ограничить максиму выводимых слов, а слова могут быть разной длины.
Просто в чем дело, есть сайт где ограничена длина и поэтому информация должна разбиваться на несколько страниц. |
Отправлено: 12:10, 30-12-2008 | #6 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Почему обязательно слово?
Так по переводу строки. А так - по брейкам. Можно разбить по предложениям ( explode(". ", $str); ), потом в цикле добавлять по одному предложению, пока суммарная длина текста не достигнет определённой длины. Или вообще в сам текст вставить разделители типа {{PAGE}} в нужных местах и потом по ним разбивать. |
Отправлено: 13:23, 30-12-2008 | #7 |
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать А можно задать максимальную длину строки, допустим width 300 и разбить это опять же на какое то количество строк?
Не хотелось бы делать какую-то определенную привязку, потому-то делаю не для себя, а для человека который даже от HTML очень далек. explode("\n", $str); а какие еще ключи бывают(\n)? |
Отправлено: 14:12, 30-12-2008 | #8 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Цитата Moon Mag:
Выделить часть строки так: $str = substr($str, 0, 300); Соответственно где-нибудь в середине - $str = substr($str, 3600, 300); Цитата Moon Mag:
\n - знак новой строки \t - знак табуляции \r - перевод строки ( \r\n обычно объединяются) Можно искать конец предложения регулярным выражением, например, но здесь я не смогу помочь ![]() |
||
Отправлено: 15:04, 30-12-2008 | #9 |
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать Спасибо большое за помощь Coutty.
И так после долгих мучение я смог вывести из MySQL определенное колличество строк на основе кода от chirs $text = 'Первый пример текста. Второй пример текста. Третий пример текста. Четвертый пример текста.'; $max_length = 30; $page = (isset($_GET['page']) ? $_GET['page'] : 2); // Разбиваем $text на массив $arr[], находя в тексте пробелы между словами $text.= ' '; while (!empty($text)): if (strlen($text)>$max_length) $n = $max_length; else $n = strlen($text); for ($i = $n-1; $i>0; $i--) if ($text[$i]==' ') break; $arr[] = trim(substr($text,0,$i+1)); $text = substr($text,$i+1); endwhile; $k = count($arr); // Выводим на экран текущую страницу echo 'Страница '.$page.' из '.$k.'<br><br>'; echo $arr[$page-1]; // Теперь рисуем простенький навигатор страниц $nav = '<a href="?page='.($page>1 ? $page-1 : 1).'">Предыдущая</a> '; $nav.= '<a href="?page='.($page<$k ? $page+1 : $k).'">Следующая</a>'; echo '<br><br>'.$nav; // А это для отладки, чтобы было видно, что происходит echo '<pre>'; print_r($arr);
считает одним текстом и может запись типа <img src=\"26_xp.jpg\"> разорвать на две части потому что там есть пробел между img_src и точно также ссылками. Поэтому я сделал так
я немного позаимствовал части кода из других примеров, авторам спасибо. Теперь просто будет немного ручного труда, придется в ручную подбирать колличество строк передвигая метки {{PAGE}}. |
Отправлено: 19:48, 03-01-2009 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Постраничный вывод PHP + MySQL (готовое решение) | darksmoke | Вебмастеру | 6 | 19-05-2011 20:43 | |
MySQL - MySQL & MySQL-Front | timon4ik | Программирование и базы данных | 2 | 06-04-2008 18:07 | |
Законы | Новая редакция ФЗ "Об информации, информатизации и защите информации" | ArtemD | Защита компьютерных систем | 2 | 31-07-2006 11:58 | |
Вывод на телевизор | dascon | Программное обеспечение Windows | 15 | 04-09-2004 06:55 | |
Вывод информации на двух мониторах | Guest | Программирование и базы данных | 1 | 26-07-2004 15:39 |
|