[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ОБРЕЗАНИЕ НОВОСТИ
Sajmonroot
Здрастуйте! Помогите найти ошибку в коде! Мне нужен скрипт который выводит из базы данных 3 новости в сокращенном режиме, когда пользователь нажмет "подробнее" ему откроется все новость!
Я нашел такой скрипт в книге но он не работает! Помогите что не так?
вот этот скрипт:

<?php
$host="localhost";
$user="root";
$pass="**************";
$db_name="den";
$table_name="news";
mysql_connect ('localhost', $user, $pass);
@mysql_select_db ($db_name) or
die ("Unable to select database");
$query="
SELECT id_news, name, body, putdate
FROM
$table_name
ORDER BY putdate DESC
LIMIT 3
"
;
$new=mysql_query($query);
if (!$new) exit("Ошибка конекта");
if (mysql_num_rows($new))
{
$patt=array("", "", "", "");
$repl=array("", "", "", "");
$pattern_url="|[url[^\]]*\] |";
$pattern_b_url="|\[/url[^\]]*\] |";
while ($news_up=mysql_fetch_array($new))
{
if (strlen($news_up['body'])>100)
{
$news_up['body']=substr($news_up['body'], 0, 100)."...";
$news_up['body']=str_replace($patt, $repl, $news_up['body']);
$news_up['body']=preg_replace($pattern_url, "", $news_up['body']);
$news_up['body']=preg_replace($pattern_b_url, "", $news_up['body']);
}
echo "<b>$news_us[putdate]|".$news_up['name']."</b><br>".$news_up['body']."
<div align=
\"right\">
<a href=
\"news.php?id_news=$news_up[id_news]\">
подробнее
</a>
</div>
<br>
"
;
}
}

?>

база данных:

<?php
$host="localhost";
$user="root";
$pass="***************";
$db_name="den";
$table_name="news";
mysql_connect ('localhost', $user, $pass);
@mysql_select_db ($db_name) or
die ("Unable to select database");
$query="
CREATE TABLE IF NOT EXISTS `
$db_name`.`$table_name` (
`id_news` INT(11) NOT NULL AUTO_INCREMENT,
`name` TINYTEXT NOT NULL,
`body` TEXT NOT NULL,
`putdate` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',

PRIMARY KEY (`id_news`)
)
"
;
mysql_query ($query);
?>

Почемуто не работеет вывод всей новости, когда я нажимаю "подробнее"
я так понимаю что это происходит здесь
<a href=\"news.php?id_news=$news_up[id_news]\">
подробнее
</a>

но я не пойму такую запись!



Спустя 3 минуты, 53 секунды (20.01.2010 - 12:37) DedMorozzz написал(а):
дык у тя ж всего 1 запрос, который берёт только 3 значения. Бери сразу все, а в сокращёном выводи лишь 3. Кроме того, есть библиотека на джекваери, которая по символьно выводит, может быть это то, что ты ищешь...

Спустя 5 минут, 48 секунд (20.01.2010 - 12:43) Gradus написал(а):
Цитата
Почемуто не работеет вывод всей новости

а её и нету

Спустя 10 минут, 57 секунд (20.01.2010 - 12:54) Sajmonroot написал(а):
А конкретней, что не так! чего нету? Вы можете мне помочь в этом?

Спустя 4 минуты, 16 секунд (20.01.2010 - 12:58) DedMorozzz написал(а):
делай запрос к БД без лимита. Когда делать необходимо краткую новость - ограничение цыкла делай 3, когда полную, тогда ограничение - кол-во элементов.

Спустя 23 секунды (20.01.2010 - 12:58) arlamar написал(а):
да нету выввода новости вообще

Спустя 59 секунд (20.01.2010 - 12:59) arlamar написал(а):
DedMorozzz
при чём здесь лимит? наоборот ему надо взять одну новость и показать её а такого когда вообще нет у него

Спустя 7 минут, 17 секунд (20.01.2010 - 13:06) Gabriel написал(а):
DedMorozzz
а не лучше резать прямо в запросе? ибо с толстыми текстами будет плохо. делаеться это так
SUBSTRING( поле, значение с которого начнем вывод, значение которым закончим вывод ) AS text
и в результате выполнения вот такой беды в запросе SUBSTRING( news, 1, 150 ) AS text получим получим индекс text в которм будет текст начиная с первого и заканчивая 150-тым символом.
Sajmonroot
а скрипт который выводит полную новость где?

Спустя 5 минут, 5 секунд (20.01.2010 - 13:12) Gradus написал(а):
Автор по моему просто халявы хочет smile.gif
Сделаю за вас, 100р smile.gif

Спустя 1 минута, 16 секунд (20.01.2010 - 13:13) DedMorozzz написал(а):
Цитата
а не лучше резать прямо в запросе?

А разве так будет не дольше, чем единожды сделать полный запрос и выводить уже в зависимости от потребностей ? huh.gif

Цитата
при чём здесь лимит? наоборот ему надо взять одну новость и показать её а такого когда вообще нет у него

Ну как это. Стоит лимит 3 - отображать лишь 3 первые новости будет, убрав лимит - все новости записать в массив. А с лимитом в массив попадёт лишь первые 3, поправьте если не прав.

Спустя 14 минут, 36 секунд (20.01.2010 - 13:27) Gabriel написал(а):
DedMorozzz
задача поставлена четко 3 новости на странице. нет так будет не дольше вчера сам убедился и выиграл на запросе 30+ секунд, на вопрос почему не дольше ответ дико прост: отдать 150 символов проще чем полторы тыщи.

Спустя 12 часов, 42 минуты, 53 секунды (21.01.2010 - 02:10) Dron19 написал(а):
Да вообще этот код тупой, наверно книга старая, много лишнего там сделано. И вообще если ты в php понимаешь, то у тебя проблем не составит сделать эту шутку, я сделал это буквально за три строчки. Мне нужно было вытащить описание заметки в моем чате. И что я сделал? А я просто выбрал поле с описанием порезал на 150символов и использовал функцию wordwrap(); и в итоге у меня получились три строчки с описание, а когда открываешь заметку действует уже код который не касается этой темы. Зачем в тебе в твоем коде регулярные выражения?

Спустя 5 часов, 55 минут, 55 секунд (21.01.2010 - 08:06) twin написал(а):
Gabriel
Цитата
в результате выполнения вот такой беды в запросе SUBSTRING( news, 1, 150 ) AS text получим получим индекс text в которм будет текст начиная с первого и заканчивая 150-тым символом.

А в результате выполнения этой беды
SUBSTRING_INDEX(`news`,' ', 20) AS `news`

получим 20 слов. Что застрахует от таких казусов, как:

Цитата
Одесский театр оперы и балета, построенный в последней четверти XIX-го века, разрушается. Судьба его плачевна и очень напоминает Пиз...
читать дальше

анскую башню. Но если Пизанская башня падает уже не одно столетие, и ее спасением занимается правительство Италии, то Одесский оперный, предоставленный сам себе, разрушается с катастрофической скоростью, исчисляемой не столетиями и даже не десятилетиями, а годами.

Спустя 5 часов, 6 минут, 3 секунды (21.01.2010 - 13:12) Gabriel написал(а):
twin
опа! а о таком я и не знал sad.gif спасибо за подсказку rolleyes.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.