0 / 0 / 0
Регистрация: 19.10.2013
Сообщений: 31
1

PHP код анонса новостей

04.02.2015, 01:06. Показов 599. Ответов 3
Метки нет (Все метки)

Подскажите пожалуйста, возможно ли в этом коде сделать отображение кнопки подробнее у каждой новости, так чтобы при ее нажатии открывалась соответствующая новость.
Код Анонса новостей(news.php):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?php
   Error_Reporting(E_ALL & ~E_NOTICE); 
?>
<table border="0" width="100%" cellpadding="15px" cellspacing="5px">
    <tr valign="top">
        <td style="border-style: solid; border-width: 1px">
            <h1 class=namepage>Анонсы новостей</h1>
            <?
                if (isset($_GET['id_news'])){
            ?>                                      
            <p class="link"><a href="news.php" class="link">показать все новости</a></p>
            <?
                }
            ?>
 
 
 
<?php
  // Устанавлинваем соединение с базой данных
  require_once("config.php");
 
  // Проверяем параметр page, предотвращая SQL-инъекцию
  if(!preg_match("|^[\d]*$|",$_GET['page'])) puterror("Ошибка при обращении к блоку новостей");
  // Проверяем переменную $page, равную порядковому номеру первой новости на странице
  $page = $_GET['page'];
  if(empty($page)) $page = 1;
  $begin = ($page - 1)*$all_number_news;
 
  // Защита от инъекционных запросов
  if(!preg_match("|^[\d]*$|",$_GET['id_news'])) puterror("Ошибка при обращении к блоку новостей");
 
  // Запрашиваем новость id_news (она должна быть видимой hide='show')
  // Если скрипту передан первичный ключ выводимой новости отображаем только одну новость
  if(isset($_GET['id_news']))
  {
    $query = "SELECT * FROM news WHERE hide='show' AND id_news=".$_GET['id_news'];
  }
  // если параметр id_news не установлен - выводим все новости
  else
  {
    $query =    "SELECT id_news,
                   name,
                   descr,
                   DATE_FORMAT(putdate,'%d.%m.%Y') as putdate_format,
                   hide
              FROM news 
              WHERE hide='show' AND putdate <= NOW()
              ORDER BY putdate DESC 
              LIMIT $begin, $all_number_news";
 
              
  }
  $new = mysql_query($query);
  if (!$new) puterror("Ошибка при обращении к блоку новостей");
  
    if(mysql_num_rows($new) > 0)
    
 
    {
 
 
    while($news = mysql_fetch_array($new))
    {
        
        // Выводим заголовок новости
        echo "<p class='zagnews'>".$news['name']."&nbsp;&nbsp;<em class=datanews>".$news['putdate_format']."</em></p>";    // Выводим тело новости перводя символы         
 
        // Выводим тело новости переводя символы 
        // переноса строки в тег <br>
        echo "<p class='text'>";
        // Выводим изображение
        if(trim($news['url_pict']) != "" && trim($news['url_pict']) != "-")
        echo "<img align=right class=img src=".$news['url_pict'].">";
        
        echo nl2br($news['body'])."</p>";
        
        // Выводим URL
        if(trim($news['url']) != "" && trim($news['url']) != "-")
        echo "<p class='linkr'><a class='link' href=".$news['url'].">".$news['url_text']."</a></p>";        
    }
  }
 
  // Постраничная навигация
  $page_link = 4;
  $query = "SELECT COUNT(*) FROM news WHERE hide='show' AND putdate <= NOW()";
  $tot = mysql_query($query);
 
  $total = mysql_result($tot,0);
  $number = (int)($total/$all_number_news);
  if((float)($total/$all_number_news) - $number != 0) $number++;
  echo "<br><table><tr><td><p>";
  // Проверяем есть ли ссылки слева
  if($page - $page_link > 1)
  {
    echo "<a href=$_SERVER[PHP_SELF]?page=1>[1-$all_number_news]</a>&nbsp;&nbsp;...&nbsp;";
    // Есть
    for($i = $page - $page_link; $i<$page; $i++)
    {
        echo "&nbsp;<a href=$_SERVER[PHP_SELF]?page=".$i.">[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]</a>&nbsp;";
    }
  }
  else
  {
    // Нет
    for($i = 1; $i<$page; $i++)
    {
        echo "&nbsp;<a href=$_SERVER[PHP_SELF]?page=".$i.">[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]</a>&nbsp;";
    }
  }
  // Проверяем есть ли ссылки справа
  if($page + $page_link < $number)
  {
    // Есть
    for($i = $page; $i<=$page + $page_link; $i++)
    {
      if($page == $i)
        echo "&nbsp;[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]&nbsp;";
      else
        echo "&nbsp;<a href=$_SERVER[PHP_SELF]?page=".$i.">[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]</a>&nbsp;";
    }
    echo "&nbsp;...&nbsp;<a href=$_SERVER[PHP_SELF]?page=$number>[".(($number - 1)*$all_number_news + 1)."-$total]</a>&nbsp;";
  }
  else
  {
    // Нет
    for($i = $page; $i<=$number; $i++)
    {
      if($number == $i)
      {
        if($page == $i)
          echo "&nbsp;[".(($i - 1)*$all_number_news + 1)."-$total]&nbsp;";
        else
          echo "&nbsp;<a href=$_SERVER[PHP_SELF]?page=".$i.">[".(($i - 1)*$all_number_news + 1)."-$total]</a>&nbsp;";
      }
      else
      {
        if($page == $i)
          echo "&nbsp;[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]&nbsp;";
        else
          echo "&nbsp;<a href=$_SERVER[PHP_SELF]?page=".$i.">[".(($i - 1)*$all_number_news + 1)."-".$i*$all_number_news."]</a>&nbsp;";
      }
    }
  }
  echo "</td></tr></table>";
?>
        </td>   
    </tr>
</table>
Код кнопки подробнее:
PHP
1
echo "<br><a class=anewsblock href=news.php?id_news=".$news['id_news'].">подробнее</a></p>";
И сразу еще 1 вопрос. Почему при запросе $query(в файле news.php), может не отображаться descr(Все остальное, что указано, отображается).
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2015, 01:06
Ответы с готовыми решениями:

PHP+ лента новостей
Всем привет, подскажите как с PHP сделать ленту новостей, где будет админка и главная страница...

Друзья необходим код php. Формы и файлы в PHP
1. Составить программу, благодаря которой пользователь может выбрать стиль оформления списков из...

Друзья необходим код php. Формы и файлы в PHP
1. Имеется упорядоченный файл. Вставить в него заданное число таким образом, чтобы упорядоченность...

Одинаковый php код, но в разных PHP файлах
Добрый вечер! Есть файл ac.php, он лежит в корне сайта, я взял и скопировал код в другой php файл,...

3
Заблокирован
04.02.2015, 10:00 2
Конечно, можно. Но сложность реализации зависит от тек. кода.
0
0 / 0 / 0
Регистрация: 19.10.2013
Сообщений: 31
04.02.2015, 11:45  [ТС] 3
Ну а есть хотя бы какие нибудь идеи как это сделать?
Я просто пытался ее вставить в эту часть кода
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  while($news = mysql_fetch_array($new))
    {
        
        // Выводим заголовок новости
        echo "<p class='zagnews'>".$news['name']."&nbsp;&nbsp;<em class=datanews>".$news['putdate_format']."</em></p>";    // Выводим тело новости перводя символы         
 
        // Выводим тело новости переводя символы 
        // переноса строки в тег <br>
        echo "<p class='text'>";
        // Выводим изображение
        if(trim($news['url_pict']) != "" && trim($news['url_pict']) != "-")
        echo "<img align=right class=img src=".$news['url_pict'].">";
        
        echo nl2br($news['body'])."</p>";
        
        // Выводим URL
        if(trim($news['url']) != "" && trim($news['url']) != "-")
        echo "<p class='linkr'><a class='link' href=".$news['url'].">".$news['url_text']."</a></p>";        
    }
  }
Но к сожалению эта кнопка создавалась и на анонсе новостей и в самой новости.
0
Заблокирован
04.02.2015, 16:39 4
Если у вас вывод списка анонсов и отдельно взятой новости делается в одном файле, то нужно изначально делать разветвление и разобраться с адресацией. Например, когда я совмещаю в одном скрипте эти две вещи, я обычно использую двухуровневую адресацию, для списка – news, а для конкретных новостей – news/20150204 и т.п. Соответственно в коде в самом начале делаю проверку, что выводить, например:
Код
//тут в качестве отличительного признака используется компонент пути
//сам путь для страниц этой категории имеет вид /news[/$p1]
if (strlen($p1)==0) { список } else { новость }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2015, 16:39
Помогаю со студенческими работами здесь

Как в код счетчика-органичение анонса статьи добавить обрезку по словам?
Нашел в инете код счетчика-органичение количества символов для цитаты. Норма задается в сниппете в...

Рассылка новостей на PHP
Можно ли воплотить? Здесь мне непонятно только одно: как заставить сервер самому в нужный день...

Php Блок новостей
Где лучше всего хранить новости в БД или в текстовом файле, если данные будут И теги и base64...

Скрипт новостей, написанный на PHP или Perl
Помогите найти скрипт новостей, написанный на PHP или Perl. Желательно, чтоб он имел следующие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru