Вывод новостей на страницу. Не получаеться

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

асс

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

Подскажите пожалуйста как сделать следущее.
В базе данных есть таблица news
в таблице поля
id
title
text
textmore


так вот как вывести на страницу новости
чтоб вышло так.
На странице новость выводиться в виде ссылки, если на нее нажать то увидим полную новость.ъ
При этом надо чтоб выводилось указаное число ссылок(новостей)
Например выводим 10 ссылок, под ними находиться навигация примерно
<<<<начало <<123456789>> далее >>>>


Вот код навигации.
HTML:
<?
$link = mysql_connect("localhost","root",""); //Подключаемся к серверу базы данных
mysql_select_db("smrty",$link); //Выбираем базу
 function page()
{
    if(empty($_GET["page"])){
        $page = 0;
    } else {
if(!is_numeric($_GET["page"])) die("Неправильный формат номера страницы!");
        $page = $_GET["page"];
    }
        return $page;
}

 function sql_query($onpage, $page, $table)
{
    $begin = $page*$onpage; // откуда начинать
        $sql = "SELECT * FROM ".$table." LIMIT ".$begin.", ".$onpage;
        $result = mysql_query($sql) or die(mysql_error());
        return $result;
}


//Функция навигации:

function navigation($onpage, $page, $table)
{
        $return = null;
    $count = mysql_query("SELECT COUNT(*) FROM news") or die(mysql_error());
        $count = mysql_fetch_array($count);
        $count = $count[0];
        $pages = $count/$onpage;
        if($page!==0){
            $prev = "<A HREF=\"?page=".($page-1)."\">&lt;</A>";
        } else {
            $prev = "<";
        }
        if($page<round($pages-1)){
            $next = "<A HREF=\"?page=".($page+1)."\">&gt;</A>";
        } else {
            $next = ">";
        }
        for($i=0;$i<$pages;$i++)
        {
            if($i==$page){
                $return.="[".($i+1)."]";
            } else {
                $return.="<A HREF=\"?page=".$i."\">[".($i+1)."]</A>";
            }
        }
        return $prev.$return.$next;
}


//С функциями покончили! Как ими пользоваться?

$onpage = 1; // записей на страницу
$table = "news"; // из какой таблицы
mysql_connect("localhost", "root", "") or die(mysql_error()); // коннект к БД
mysql_select_db("smrty"); // выбор БД
$page = page(); // определяем страницу
$result = sql_query($onpage, $page, $table); // sql - запрос
while($data = mysql_fetch_array($result)) // цикл вывода
{
// Этот  кусок выводит   поля новостей
 [B]echo " titletext <b>$data[titletext]</b><br /> ";
 echo "id<b> $data[id]</b><br />";
 echo "text<b> $data[text]</b><br />";
  echo "textmore <b>$data[texmore]</b><br />";[/B]

}
$navigation = navigation($onpage, $page, $table); // определим навигацию
echo $navigation; // выведем ее
mysql_close(); // отключение от БД
?>
Хочу делать скриптец CMS.
но вот не пойму как реализовать нужное.

Можно сделать что то типа

HTML:
  echo "<A HREF=?news=$data[id]>$data[titletext]</A><BR>";
     $news = $_GET["news"];
       $is= $data["id"];
        if($news==$is){
   echo " titletext <b>$data[titletext]</b><br /> ";
    echo "id<b> $data[id]</b><br />";
     echo "text<b> $data[text]</b><br />";
        echo "textmore <b>$data[texmore]</b><br />";
        }

$data[id] это номер статьи.

Буду благодарен за любые идеи.
 
Перед тем как что-то писать неплохо было бы выучить теорию.
Не $data[texmore], а $data['texmore'] и так везде.

ЗЫ писуны, блин...
 
Перед тем как что-то писать неплохо было бы выучить теорию.
Не $data[texmore], а $data['texmore'] и так везде.

ЗЫ писуны, блин...

Я так и делаю , если если вывожу данные так 1) echo $data['tletext'];
если вывожу так 2) echo " titletext <b>$data[titletext]</b><br /> "; то кавычки не ставлю .

если с кавычками то так 3)
HTML:
echo " titletext <b>".$data['titletext']."</b><br /> ";
PHP_Master а может раскажете чем некорректна строка echo " titletext <b>$data[titletext]</b><br /> "; ?
Помоему вполне корректна.
 
Вполне корренктна, но не рекомендуется начиная с уровня вывода ошибок E_NOTICE
 
С навигацией разобрался.
Но вот как реализовать чтоб
например Для просмотра ссылки Войди или Зарегистрируйся

titletext название1
text короткая новость текст1
textmore полная новость текст1
1 | 2 | 3 > >>

так вот
я хочу сделать чтоб новость выводилась так

HTML:
[B]titletext  название1 в виде ссылки[/B] и
text  короткая новость текст1

если нажимаем на ссылку и то открываем страницу полной новости.



Саму ссылку сделать не проблемма.
Но я так понимаю что надо сделать условие например
по ID новости.
Если жмем на ссылку Для просмотра ссылки Войди или Зарегистрируйся
то видим полную новость.
урл получиться типа Для просмотра ссылки Войди или Зарегистрируйся

тоесть &news=4
выводит новость 4 на странице 1.
Просто раньше не писал таких приоложений.

вот примерно такой запрос который выводит нам всю новость
HTML:
$result=mysql_query("select id,title,date,description,news from base WHERE title='$search' order by id desc LIMIT $start,$num",$db); 
$myrow=mysql_fetch_array($result);

Это код просто для примера.

Добавлено через 15 минут
вот полностью рабочий пример.
в базе такие таблицы
HTML:
titletext название1
datepost  (13:19:19)
text текст1
texmore' полный текст1


на сайте их видно как
HTML:
название1 (13:19:19)
текст1
полный текст1

Все нормально работает,теперь надо сделать название ссылкой.
Нижимая которую будем видеть только полную новость.

Код:
<?php$server = 'localhost';
$user = 'root';
$pass = '';
$db = 'smrty';
$table = 'news';
$chislo = 1; // ЧИСЛО СООБЩЕНИЙ НА СТРАНИЦЕ
$connect = mysql_connect ($server, $user, $pass);
$select = mysql_select_db($db);
$result = mysql_query("SELECT * from $table ORDER by id desc");
if (!$result) {
echo $text_error;
exit;}
$num_rows = mysql_num_rows($result);
$num_rows = round($num_rows/$chislo);
if (isset($_GET['page'])) {
$nav = $_GET['page'];
}
else {
$nav = 1;}
$nav = intval($nav); // ДЛЯ ЗАЩИТЫ ОТ НЕХОРОШИХ ДЯДЕНЕК МЫ ВЫДЕЛИМ ЦЕЛУЮ ЧАСТЬ $GET['str']
echo 'Навигация: ';
$num_rows++;
for ($i=1; $i<$num_rows; $i++)
{
if ($i != $nav)
{
echo "<a href='?page=$i'>$i</a>";
}
else
{
echo "<span> $i </span>";
}
}
echo '<hr />';
if (!isset($_GET['page'])) {
$page = 0;
}
else {
$page = $_GET['page']*$chislo - $chislo;
}
$nomer = $page+$chislo;
$res = mysql_query("SELECT * from $table ORDER by id limit $page, $chislo");
if (!$result) {
echo $text_error;
exit;
}
while ($row = mysql_fetch_array($res))
{
$name = $row['titletext'];
$date = $row['datepost'];
$com = $row['text'];
 $coms = $row['texmore'];
echo "<table border=0 cellspacing=0 cellpadding=5 width=100%>
<tr bgcolor=#eeeeee><td class=td>$name ($date)</td></tr>
<tr bgcolor=#d2e8ff><td class=td>$com</td></tr>
<tr bgcolor=#d2e8ff><td class=td>$coms</td></tr>
</table> <br>";

}
?>
 
Открывай любой простенький движок и смари что там и как
 
Открывай любой простенький движок и смари что там и как

Сдалал так
Код:
<?

// Подключение к базе данных

@$db=mysql_connect('localhost','root','');
mysql_select_db('xxx');
@$action=$_GET['action'];
@$id=$_GET['id'];
if (!$action && !$id){

$sql="SELECT * FROM `news` ORDER BY `id` ASC LIMIT 0,6";
$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"];
 echo '('.$date.') <a href="6.php?id='.$id.'">'.$tema.'</a><p><hr>';
}
} 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>
    <a href="6.php">  Вернуться к новостям</a>';
  }

?>


выводит нужное количество ссылок на полную новость.
Так же выводит саму новость если перейти по ссылке.
Но по умолчанию на главной одна новость самая последняя видна полностью, и к тому же под ссылками.


вот пример

Для просмотра ссылки Войди или Зарегистрируйся

Для просмотра ссылки Войди или Зарегистрируйся

Для просмотра ссылки Войди или Зарегистрируйся
и так все 6 ссылок

(0000-00-00) Статья 4

(0000-00-00) Статья 5

(0000-00-00) Статья 6 < это ссылка

Статья 6
Добавил: сиб
Экологическая обстановка в Москве в пятницу,

Вернуться к новостям


вот картинка чтоб проще понять было.

Надо чтоб видно был только ссылку.
 

Вложения

  • Screenshot - 30_01_2009 , 12_49_41.gif
    Screenshot - 30_01_2009 , 12_49_41.gif
    9,5 KB · Просмотры: 2
Вполне корренктна, но не рекомендуется начиная с уровня вывода ошибок E_NOTICE
Нифига не корректна.
$data[titletext] - неопределённый элемент массива, поскольку при такой записи titletext будет трактоваться не как ключ массива, а как константа (которая не определена).

Хотя в итоге и сработает, но о коректности говорить не приходится.
 
Нифига не корректна.
$data[titletext] - неопределённый элемент массива, поскольку при такой записи titletext будет трактоваться не как ключ массива, а как константа (которая не определена).

Хотя в итоге и сработает, но о коректности говорить не приходится.

ну так понятно $data[titletext]; что не корректно.

а так echo "$data[titletext] ";
так ведь она в кавычках получаеться.
Или это не важно?
Век живи век учись,как говориться. :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху