|
|
|
| Здравствуйте.
Подскажите как сделать вывод статей из MySQL не в полном виде, а только начальный текст с сылкой ""?
И привязать это к постраничной навигации. | |
|
|
|
|
|
|
|
для: oven
(21.02.2007 в 21:22)
| | Статья в каком виде хранится? В виде отдельных параграфов или целиком? | |
|
|
|
|
|
|
|
для: cheops
(22.02.2007 в 12:50)
| | я записываю в базу html код страничек с ссылками на изображения. | |
|
|
|
|
|
|
|
для: oven
(22.02.2007 в 12:56)
| | C HTML-текстом сложнее работать - в нём таблицы используются или только простейшие тэги <b></b> и т.п.? | |
|
|
|
|
|
|
|
для: cheops
(22.02.2007 в 13:33)
| | Планировал таблицы использовать, но можно и без таблиц - простое форматирование текста. | |
|
|
|
|
|
|
|
для: oven
(22.02.2007 в 14:01)
| | Продумай сначала как легче всё сделать.. а то сам себе яму копаешь..
Добавляй в бд только чистый текст.. а дальше его можно выводить обрезая, т.е. допустим публиковать только первые 200 символов.. и в зависимости от id пересылать на страницу.. где уже полная статья.. | |
|
|
|
|
|
|
|
для: mr Bin
(23.02.2007 в 16:35)
| | Текст статей будет выглядеть примерно следующим образом :
<p>Первая и самая серьезная ошибка, которую может допустить неопытный веб-дизайнер, -это ориентация на чужую целевую аудиторию. <img src="images/generalim/dut.gif" width="30" height="30" hspace="10" vspace="10" align="left">Сайт создается для того, чтобы его посещали.При неправильном позиционировании материалов все ваши посетители будут лишь случайными интернет-серферами. Что случится, если вы будут выкладывать на веб-сайте, посвященном новым моделям бытовой техники, обзоры литературных новинок? Ничего, разумеется, хорошего. Запомните, каждый материал имеет своего адресата. Попытка сыграть на чужой территории ничего хорошего не принесет.</p>.... и т.д.
Скрипт постраничной навигации такой:
<?php
function yandex_link_bar($page, $count, $pages_count, $show_link)
{
// $show_link - это количество отображаемых ссылок;
// нагляднее будет, когда это число будет парное
// Если страница всего одна, то вообще ничего не выводим
if ($pages_count == 1) return false;
$sperator = ' '; // Разделитель ссылок; например, вставить "|" между ссылками
// Для придания ссылкам стиля
$style = 'style="color: #003399; text-decoration: none;"';
$begin = $page - intval($show_link / 2);
unset($show_dots); // На всякий случай :)
// Сам постраничный вывод
// Если количество отображ. ссылок больше кол. страниц
if ($pages_count <= $show_link + 1) $show_dots = 'no';
// Вывод ссылки на первую страницу
if (($begin > 2) && ($pages_count - $show_link > 2)) {
echo '<a '.$style.' href='.$_SERVER['PHP_SELF'].'?page=1> |< </a> ';
}
for ($j = 0; $j <= $show_link; $j++) // Основный цикл вывода ссылок
{
$i = $begin + $j; // Номер ссылки
// Если страница рядом с началом, то увеличить цикл для того,
// чтобы количество ссылок было постоянным
if ($i < 1) continue;
// Подобное находится в верхнем цикле
if (!isset($show_dots) && $begin > 1) {
echo ' <a '.$style.' href='.$_SERVER['PHP_SELF'].'?page='.($i-1).'><b>...</b></a> ';
$show_dots = "no";
}
// Номер ссылки перевалил за возможное количество страниц
if ($i > $pages_count) break;
if ($i == $page) {
echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
} else {
echo ' <a '.$style.' href='.$_SERVER['PHP_SELF'].'?page='.$i.'>'.$i.'</a> ';
}
// Если номер ссылки не равен кол. страниц и это не последняя ссылка
if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
// Вывод "..." в конце
if (($j == $show_link) && ($i < $pages_count)) {
echo ' <a '.$style.' href='.$_SERVER['PHP_SELF'].'?page='.($i+1).'><b>...</b></a> ';
}
}
// Вывод ссылки на последнюю страницу
if ($begin + $show_link + 1 < $pages_count) {
echo ' <a '.$style.' href='.$_SERVER['PHP_SELF'].'?page='.$pages_count.'> >| </a>';
}
return true;
} // Конец функции
// Подключение к базе данных
mysql_connect('localhost', 'test', '1977') or die('Error! Нет соединения с сервером MySQL!');
mysql_select_db('testhome') or die('Error! Нет соединения с базой данных!');
// Подготовка к постраничному выводу
$perpage = 1; // Количество отображаемых данных из БД
if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page']; // Считывание текущей страницы
}
// Общее количество информации
$count = mysql_num_rows(mysql_query('SELECT * FROM home')) or die('Error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
// Вызов функции, для вывода ссылок на экран
yandex_link_bar($page, $count, $pages_count, 10);
// Вывод информации из базы данных
echo '<p><b>Постраничный вывод информации</b></p>';
$result = mysql_query('SELECT * FROM home LIMIT '.$start_pos.', '.$perpage) or die('Error!');
while ($row = mysql_fetch_array($result)) {
echo '<p>'.$row['text'].'</p>';
}
?>
Вот как здесь сделать не полный вывод статей, а как писалось выше, допустим по 200 символов с ссылкой на полный текст? | |
|
|
|
|
|
|
|
для: oven
(24.02.2007 в 21:28)
| | $row['text'] ограничить 200 символами, т.е. обрезать.
Сделать ещё один скрипт, или добавить в существующий функцию, которая будет выводить определённую статью, в зависимости от id.
id должен быть в строке браузера и методом $GET выдираешь его и вставляешь в запрос.
Смысл такой:
$row['text'] обхватываешь ссылкой, на страницу, где будет полный текст.
в формировании урл нужно будет просто сделать типо того <a href="fulltext.php?id=$row[id]">$row[text]</a>
в зависимости от id тебе выведется статья.
fulltext.php
<?php
$id = $_GET["id"];
$result = mysql_query('SELECT * FROM home WHERE id = '$id' ');
while($full=mysql_fetch_array($result))
{
echo '$full[text]';
}
?>
|
p.s. Как обрезать текст не помню. | |
|
|
|
|
|
|
|
для: mr Bin
(24.02.2007 в 21:55)
| | Я просто только начинаю все это изучать и мне крайне трудно разобраться и понять что же надо сделать, может кто подробнее расскажет как это реализовать.
Ребята, ну помогите, ведь тем кто разбирается наверняка это не сложно и много времени не займет! | |
|
|
|
|
|
|
|
для: oven
(25.02.2007 в 10:03)
| | Народ! Ну помогите кто нибудь, пожалуйста! Очень прошу! | |
|
|
|
|
|
|
|
для: oven
(26.02.2007 в 18:08)
| | Ну я же написал всё...
// Вывод информации из базы данных
echo '<p><b>Постраничный вывод информации</b></p>';
$result = mysql_query('SELECT * FROM home LIMIT '.$start_pos.', '.$perpage) or die('Error!');
while ($row = mysql_fetch_array($result)) {
echo '<p>'.$row['text'].'</p>';
}
|
в этом куске тебе нужно сделать ссылку на статью:
echo '<p>'.$row['text'].'</p>';
меняешь на
echo '<a href='fulltext.php?id='.$row['id'].''><p>'.$row['text'].'</p></a>';
это сработает при условии, что у тебя каждая статья пронумерована...
как обрубить не помню, сам поищи...
вывод каждой статьи у тебя выведется сплошной ссылкой, нажав на котрую, ты переходишь на другой скрипт.
Создай файл fulltext.php
<?php
$id = $_GET["id"];
$result = mysql_query('SELECT * FROM home WHERE id = '$id' ');
while($full=mysql_fetch_array($result))
{
echo '$full[text]';
}
?>
|
Например у тебя там есть статья под номером(id) 115.
Нажав в своём скрипте(где постраничка) на ссылку, ты переходишь в новый скрипт, и адрес у тебя получится такой - fulltext.php?id=115
этой строкой $id = $_GET["id"]; мы вытягиваем значание id из адресной строки, т.е. 115.
далее вставляем это число в запрос:
$result = mysql_query('SELECT * FROM home WHERE id = '$id' ');
тем самым мы выбираем нужную нам статью..
ну а дальше она полностью выводится..
итак, от тебя требуется найти функцию, которая обрубит текст.. а остальное я всё описал... | |
|
|
|
|
|
|
|
для: mr Bin
(27.02.2007 в 19:41)
| | А если сделать дополнительное поле в таблице с кратким описанием и выводить эти описания то как сделать под каждым ссылку на полную статью? | |
|
|
|
|
|
|
|
для: oven
(05.03.2007 в 19:13)
| | Элементарно :)
Допустим в этой же таблице ты сделал ячейку - minitext
То просто меняешь это:
echo '<a href='fulltext.php?id='.$row['id'].''><p>'.$row['text'].'</p></a>';
на это:
echo '<a href='fulltext.php?id='.$row['id'].''><p>'.$row['minitext'].'</p></a>'; | |
|
|
|