Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2011, 17:36   #1
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
Смех Страницы для новестей

Собственно вопрос: Как реализовать вывод новостей с помощью страниц на php ?
все новости находятся в бд mysql

пример:
Alex1991 вне форума Ответить с цитированием
Старый 11.06.2011, 20:07   #2
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
Радость

очень просто.для начала соеденяемся с базой данных
Код:
<?php
mysql_connect("localhost", "user", "password") or die("Невозможно соединиться с базой данных. Проверьте правильность написания логина/пароля");
mysql_select_db("#######") or die("Невоможно выбрать базу данных. Убедитесь, что выбираемая база существует.");
?>
выводим страницу.Для начала нужно определить сколько будет записей на одной странице, сколько всего записей в базе данных
Код:
<?php
// количество записей, выводимых на странице
$per_page = "10";
// получаем номер страницы
$p="$_GET[page]";
if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
// вычисляем первый оператор для LIMIT
$start=abs($page*$per_page);
// составляем запрос и выводим записи
// переменную $start используем, как нумератор записей.
$q1="SELECT * FROM `news` ORDER BY data LIMIT $start,$per_page ";
$res1=mysql_query($q1);
while($row1=mysql_fetch_array($res1)) {
  echo ++$start.". ".$row1['field']."<br>\n";
}

// дальше выводим ссылки на страницы:
$q1="SELECT count(*) FROM `news` ORDER BY date";
$res1=mysql_query($q1);
$row1=mysql_fetch_row($res1);
$total_rows=$row1[0];
 
$num_pages=ceil($total_rows/$per_page);
выводим записи из базы
Код:
// SQL-запрос:
$q2 = mysql_query ("SELECT * FROM news ORDER BY date LIMIT $start,$per_page");
// Выводим таблицу:
for ($c2=0; $c2<mysql_num_rows($q2); $c2++)
{
$f = mysql_fetch_array($q2);
//Стоим таблицу
echo"<table><tr>
<td>$f[id]</td>
<td>$f[name]</td>
</tr>
<tr>
<td>
$f[text]
</td>
</tr>
</table>";
}
завершаем вывод записей и формируем кнопки навигации, тоесть номера страниц.
Код:
echo"<br><br><div class=\"page\"><center>";
if($page>0){
echo"<a class=navig href=\"$_SERVER[PHP_SELF]?page=1\"><b>На первую </b></a>";
}
for($i=1;$i<=$num_pages;$i++) {
if($p==$i){$navig="navig_activ";}else{$navig="navig";}
echo "<a href=$_SERVER[PHP_SELF]?page=$i><b>$i</b></a>";
}
?>
Вот и весь вывод

Последний раз редактировалось dem66; 11.06.2011 в 20:21.
dem66 вне форума Ответить с цитированием
Старый 11.06.2011, 20:20   #3
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
Хорошо

Теперь нужно както эти самые новости добавить в базу.Для этого пишем скрипт.
Получаем данные из формы
Код:
<?php
$name="$_POST[name]";
$text="$_POST[text]";
Текущая дата
Код:
$date_today = date("d.n.y"); //присвоено 03.12.01
$today = date("H:i"); //присвоит 1 элементу массива 17:16:17
//echo("Текущее время: $today и дата: $day_today .");
$dat="$date_today-$today";
Делаем перенос каретки на новою строку
Код:
//Поле text
$text = str_replace("\r\n","\n",$text); 
$text = str_replace("\r","\n",$text); 
$text = str_replace("\n\n", '<p>',$text); 
$text = str_replace("\n", '<br>',$text);
Подключаем базу данных
Код:
if (file_exists("../connect.php")) {
	require("../connect.php");
} else {echo "Установочные файлы повреждены !";
	exit();
}
Проверяем на пустоту поля. Если ничего не передано-то ругаемся
Код:
if (empty($text))
{
echo"Вы не ввели текст материала";
exit;
}
Добавляем данные в базу
Код:
$sql="INSERT INTO news(name,text,date) values('$name','$text','$dat')"; 
if (!mysql_query($sql)) { 
echo "<center><font color=red><h2>Fatal Eror</h2></font></center>";
exit;
} else {
echo "Данные добавлены<br>";
//кудато перенаправляем
echo "<meta http-equiv='refresh' content='0; url=index.php'>"; 
} 
?>
Вот и весь скрипт добавления. Теперь нужна форма в которую будет писатся текст.

Код:
<form action="add.php" method="post">
Навзание:<input type="text" name="name"/>
Текст:<br>
<textarea rows="10" style="width:100%;height:150px;" id="text" name="text" cols="40"></textarea>
<input type="submit"  valeu="Добавить"/>
</form>
База даных:

Код:
CREATE TABLE IF NOT EXISTS `news` (
  `id` int(1) NOT NULL auto_increment,
  `name` text,
  `text` text,
  `date` text,
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
Все скрипты рабочие. Выдернул из своей CMS
dem66 вне форума Ответить с цитированием
Старый 11.06.2011, 22:58   #4
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Конечно выложить готовые скрипты в таком количестве похвально ... но уж если вы хотите чему-нибудь научить новичков, я бы не стал использовать такой код ... уж извините ... мягко говоря многовато "странных" и небезопасных вещей.
P.S. Если мое сообщение вызовет бурю негодования, могу подробно все прокомментировать.

Последний раз редактировалось Cronos20; 11.06.2011 в 23:02.
Cronos20 вне форума Ответить с цитированием
Старый 11.06.2011, 23:06   #5
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

не ну согласен. но скрипты ведь еще и не идеал. их нужно дорабатыва. я ведь не выкладывал полые сценарии. эти скрипты еще дописывать и дописывать. но для начала вполне хватит, даже больше чем надо. Ну надоже подтолкнуть, помочь человеку или вы не согласны?

Половину могу убрать
dem66 вне форума Ответить с цитированием
Старый 11.06.2011, 23:52   #6
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Хорошо, тогда представим, что этот код вы писали давно и с помутнением сознания))) и забудем)
Код:
$name="$_POST[name]";
$text="$_POST[text]";
$sql="INSERT INTO news(name,text,date) values('$name','$text','$dat')";
Ну тогда хотя бы скажем человеку, что это находка для шпиёна :-)
Cronos20 вне форума Ответить с цитированием
Старый 12.06.2011, 00:08   #7
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

ну собственно тема уже розжеваная. довести скрипты до ума это уже не сложно. что сдесь еще описывать? вот бы мне кто помог в моей теме
dem66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скриптик для страницы с тестами askerpro JavaScript, Ajax 1 06.11.2010 21:23
Макрос для сжатия страницы и печати DYm00n Microsoft Office Word 5 19.09.2010 19:20
Недоступные для idHTTP страницы AndrzejX Работа с сетью в Delphi 3 20.12.2009 00:33
Плагин для страницы новостей Maxs WordPress и другие CMS 0 31.10.2009 21:33
Фон страницы для разных браузеров Makarov HTML и CSS 8 19.06.2009 22:32