|
|
 5.7 Кб |
|
|
для: inkrize
(10.06.2011 в 00:36)
| | а вот вариант, когда одна новость может принадлежать разным категориям
не забудьте обновить базу, там некоторые изменения добавлена связующая таблица и убрано поле id_cat из таблицы news
<?php
include('conect.php');
// проверка переменных (упрощенно)
if(isset($_GET['page'])) $page=intval($_GET['page']); else $page=1;
if(isset($_GET['cat'])){
$cat=intval($_GET['cat']);
$where="WHERE catnews.id_cat=$cat";
}else{
$where="";
}
$offset=($page-1)*5;
// вывод категорий
echo " <b>новости</b> <a href='news_bloc.php'>без категорий</a> ";
$query="SELECT * FROM cat";
$res=mysql_query($query);
if(mysql_num_rows($res)>0){
while($s=mysql_fetch_assoc($res)){
echo "| <a href='news_bloc.php?cat=".$s[id]."'>$s[name]</a> ";
}
}else {
echo("Отсутствуют категории...");
}
echo "<hr />";
// вывод новостей
$query="SELECT
DISTINCT
SQL_CALC_FOUND_ROWS news.*
FROM news
LEFT JOIN catnews
ON catnews.id_news=news.id
$where
ORDER BY id DESC
LIMIT $offset,5";
$res=mysql_query($query);
if(mysql_num_rows($res)>0){
while($s=mysql_fetch_assoc($res)){
echo $s[date]." <b>$s[title]</b><br />";
echo $s[s_text]."<br /> <a href=''>читать далее</a>...<br />";
echo "<hr />";
}
}else {
echo("Новостей нет...");
}
// Вывод панели перехода со страницы на страницу
echo("<center>");
$query="SELECT FOUND_ROWS()";
$res=mysql_query($query);
$num=mysql_result($res,0);
$page_num=ceil($num/5);
for($ps=0; $ps<$page_num; $ps++){
$ps2=$ps+1;
if($cat) echo("<a href='news_bloc.php?page=$ps2&cat=$cat'>$ps2</a> ");
else
echo("<a href='news_bloc.php?page=$ps2'>$ps2</a> ");
}
echo("</center>");
?>
|
как видно из кода изменен только лишь запрос к базе и добавлена таблица, а функциональность сильно повысилась. | |
|
|
|
|
 5.5 Кб |
|
|
для: inkrize
(10.06.2011 в 00:36)
| |
<?php
include('conect.php');
// проверка переменных (упрощенно)
if(isset($_GET['page'])) $page=intval($_GET['page']); else $page=1;
if(isset($_GET['cat'])){
$cat=intval($_GET['cat']);
$where="WHERE id_cat=$cat";
}else{
$where="";
}
$offset=($page-1)*5;
// вывод категорий
echo " <a href='news_bloc.php'>новости без категорий</a> ";
$query="SELECT * FROM cat";
$res=mysql_query($query);
if(mysql_num_rows($res)>0){
while($s=mysql_fetch_assoc($res)){
echo "| <a href='news_bloc.php?cat=".$s[id]."'>$s[name]</a> ";
}
}else {
echo("Отсутствуют категории...");
}
echo "<hr />";
// вывод новостей
$query="SELECT
SQL_CALC_FOUND_ROWS *
FROM news $where
ORDER BY id DESC
LIMIT $offset,5";
$res=mysql_query($query);
if(mysql_num_rows($res)>0){
while($s=mysql_fetch_assoc($res)){
echo $s[date]." <b>$s[title]</b><br />";
echo $s[s_text]."<br /> <a href=''>читать далее</a>...<br />";
echo "<hr />";
}
}else {
echo("Новостей нет...");
}
// Вывод панели перехода со страницы на страницу
echo("<center>");
$query="SELECT FOUND_ROWS()";
$res=mysql_query($query);
$num=mysql_result($res,0);
$page_num=ceil($num/5);
for($ps=0; $ps<$page_num; $ps++){
$ps2=$ps+1;
if($cat) echo("<a href='news_bloc.php?page=$ps2&cat=$cat'>$ps2</a> ");
else
echo("<a href='news_bloc.php?page=$ps2'>$ps2</a> ");
}
echo("</center>");
?>
|
пробуйте + в аттаче база и конфиг | |
|
|
|
|
|
|
|
для: inkrize
(10.06.2011 в 00:36)
| | ну вот что и требовалось доказать....
как только я сделал эхо запроса, сразу стало видно что при отсутствующем значении страницы оффсет в лимите равен -5
переменные всегда нужно контролировать
теперь что у Вас там выводиться одним циклом? у меня ровно 5 значений на страницу | |
|
|
|
|
|
|
|
для: inkrize
(10.06.2011 в 00:36)
| | ну Апачь с МайЭСКЮЭЛЕМ запущу как положено и проверю код :) | |
|
|
|
|
|
|
|
для: Valick
(10.06.2011 в 00:35)
| | >завтра на работе запульну сервер
Непонял? =) | |
|
|
|
|
|
|
|
для: inkrize
(10.06.2011 в 00:24)
| | завтра на работе запульну сервер и будем посмотреть, на пальцах сложно докопаться до истины :) | |
|
|
|
|
|
|
|
для: Valick
(10.06.2011 в 00:20)
| | а что там с постраничным выводом и категориями? | |
|
|
|
|
|
|
|
для: Valick
(10.06.2011 в 00:20)
| | while($s=mysql_fetch_assoc($query))
В оригинале все правильно, это я в сообщении опечатался( | |
|
|
|
|
|
|
|
для: inkrize
(10.06.2011 в 00:13)
| | если изменяете код нужно быть внимательнее :)
while($s=mysql_fetch_assoc($res)) -> while($s=mysql_fetch_assoc($query))
но это не есть гуд, так Вы будете путаться в переменных
$query - это запрос как бы, а
$res - это ресурс
___
послушайте совет, привыкайте к грамотному написанию кода.. это сэкономит потом и время и нервы) | |
|
|
|
|
|
|
|
для: Valick
(10.06.2011 в 00:03)
| |
<?php
include("db.php");
$page=$_GET["page"];
$offset=($page-1)*5;
$cat=1;
$query=mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT $offset,5");
if(mysql_num_rows($query)>0){
while($s=mysql_fetch_assoc($res)){
echo $[id];
// Дальше идет вывод всех полей с оформлением и две пустые строки для разделения новостей
}
}
else
{
echo("Новостей нет...");
}
// Вывод панели перехода со страницы на страницу
echo("<center>");
$q2=mysql_query("SELECT * FROM news");
$all_stats=mysql_num_rows($q2);
$page_num=ceil($all_stats/5);
for($ps=0; $ps<$page_num; $ps++)
{
$ps2=$ps+1;
echo("<a href='blog.php?page=$ps2'>$ps2</a> ");
}
echo("</center>");
?>
|
| |
|
|
|
|