Как создать вывод новостей на странице?

Статус
В этой теме нельзя размещать новые ответы.

асс

Мой дом здесь!
Регистрация
13 Окт 2006
Сообщения
762
Реакции
230
добрый вечер.
Хочу сделать скрипт блокнотик.
Но вот никак не могу понять как мне выводить носоить на странице.
Вот пример .


И так название новости она же ссылка на полную новость

Президент РФ утвердил отмену избирательного залога
нажимаем на ссылку и переходим к полной новости.
Мне нужно когда попадаем на полную новость чтоб
она была в самом верху. Под ней в низу были остальные ссылки на другие новости.


При этом нужно чтоб на странице выводилось № число новостей

Может кто помочь? Буду очень благодарен.

Новости храняться в базе в таблицах
id
name
text
date






Собственно вот есть скрипт, в нем выводяться новости и должа быть пагинация.
Но скрипт очень громоздкий.Может кто подскажет компактное решение?


PHP:
<?

@$db=mysql_connect('localhost','root','');
mysql_select_db('xxx');

$per_page=10;

@$action=$_GET['action'];
@$id=$_GET['id'];

if (!$id && $action){
if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
$start=abs($page*$per_page);
$q="SELECT count(*) FROM `news`";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$total_rows=$row[0];
$num_pages=ceil($total_rows/$per_page);
echo '<h1>Новости проекта</h1>';
$sql="SELECT * FROM `news` ORDER BY `id` DESC LIMIT ".($page*$per_page).",".$per_page;
$result=mysql_query($sql);
$num_results=mysql_num_rows($result);
for ($i=0; $i<$num_results; $i++)
    {
    $row=mysql_fetch_array($result);
 $id=$row["id"];
    $author=$row["author"];
    $date=$row["date"];
    $tema=$row["tema"];
    $text=$row["text"];
  echo '<b>'.$tema.'</b><br>

    <a href="/news/'.$id.'/">Добавил</a>: <b>'.$author.'</b>

('.$date.')<p> '.$text.' <hr>';
    }

for($i=1;$i<=$num_pages;$i++) {
  if ($i-1 == $page) {
    echo

"[".(abs($i*$per_page)-$per_page+1)." - ".abs($i*$per_page)."]  ";
  }
  else {
    echo '[<a
href="1.php?action=all&page='.$i.'">'.(abs($i*$per_page)-$per_page+1)." - ".abs($i*$per_page)."</a>]  ";
}}}if (!$action && !$id){
$sql="SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0,10";
$result=mysql_query($sql);
$num_results=mysql_num_rows($result);

for ($i=0; $i<$num_results; $i++)
    {
    $row=mysql_fetch_array($result);
    $id=$row["id"];

    $date=$row["date"];
    $tema=$row["tema"];
    echo '('.$date.') <a href="1.php?id='.$id.'">'.$tema.'</a><p>';
    }}
if (!$action && $id){

$sql="SELECT * FROM `news` WHERE `id`=".$id;
$result=mysql_query($sql);

    $row=mysql_fetch_array($result);
    $id=stripslashes($row["id"]);
    $author=$row["author"];
    $date=$row["date"];
    $text=$row["text"];
    $tema= $row["tema"];
    echo '<h1>'.$tema.'</h1>

    Добавил: <b>'.$author.'</b> ('.$date.')<p> '.$text.' <p>';
}?>
 
Вполне себе подходящий по ваши нужды скрипт. Некуда его ужимать :)
 
можешь к примеру не делать лишних телодвижений и выводить данные сразу через $row... не присваивая переменым значения, также почему не юзать просто while(mysql_fetch_array($result); ) вместо фора там где не требуеться подсчет итераций ишки
 
можешь к примеру не делать лишних телодвижений и выводить данные сразу через $row... не присваивая переменым значения, также почему не юзать просто while(mysql_fetch_array($result); ) вместо фора там где не требуеться подсчет итераций ишки

еще если новость выводится, то список не нужно выводить, поставь условие, что если id определен, то чтоб лишний раз for\while не отрабатывал

можно вывод списка и вывод новости разными файлами сделать, тогда каждый из них будет достаточно компактным)))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху