Изменить количество записей на странице
На сайте есть страница вывода превью новостей. Выводятся они по 3 в ряд и по 10 на странице. Если записей больше - получаем пагинацию. Все довольно стандартно.
Необходимо вывести кратное 3-м количество записей (9 шт), поскольку при 10 записях в последней строке получаем два пустых блока. К сожалению, в PHP совершенно не силен и хотя общее представление о программировании дает примерное понимание кода, но этого не хватает для решения "задачи". Скрипт прилагаю.
Буду благодарен за содействие.
<?php
if(isset($_GET['id'])) {
?>
<article class="grad">
<div class="padd title clear">
<?php
include 'modules/path.php';
$prevname=''; $nextname='';
$dt=explode(' ',$news_data);
$time=explode(':',$dt[1]);
$d=explode('-',$dt[0]);
$ani=array();
$anitname=array();
if(isset($_GET['page']) && $_GET['page']!='') {
$uu='(';
for($i=1; $i<=2; $i++) {
if($i>1) $uu.=" OR ";
$uu.="cat".$i."_t='".$_GET['page']."'";
for($z=3;$z>=1;$z--) {
$uu.=" OR cat".$z.$i."_t='".$_GET['page']."'";
}
}
$uu.=" OR cat3_t='".$_GET['page']."')";
}
$results651=mysqli_query($vista, "SELECT id, tname FROM upz_news WHERE act='1' AND ".$uu." ORDER BY dt1 DESC");
while($roko=mysqli_fetch_array($results651)) {
$ani[$roko[0]]=$roko[0];
$anitname[$roko[0]]=$roko['tname'];
}
?>
<h1><?php echo $news_name?></h1>
<?php
if(trim($news_fotoid)!='') {
$glob=glob('im/news/'.$news_fotoid.'-1.*');
if(count($glob)>0 && trim($glob[0])!='') {
echo '<p align="center"><img class="pia" src="'.$sn.'/'.$glob[0].'" alt="'.$news_name.'" /></p>';
}
}
echo ochistka($news_ukropis);
if(trim($news_video)!='') echo '<div class="par">'.ochistka($news_video).'</div>';
#Выбор следующего в списке
$nona=0;
foreach($ani as $key=>$value) {
if($nona==1) {
$nextname=$value;
break;
}
if($key==$news_id) {
$nona=1;
}
}
foreach($ani as $key=>$value) {
if($key==$news_id) {
break;
}
$prevname=$value;
}
echo '<br><p align="center">';
echo ($prevname=='') ? "" : "<a class='btn' href='".$sn.$lana."/{$_GET['page']}/$prevname-".$anitname[$prevname]."'><i class=\"fa fa-arrow-left fa-fw\"
aria-hidden=\"true\"></i> ".m19."</a>";
?>
<?php
echo ($nextname=='') ? "" : "<a class='btn' href='".$sn.$lana."/{$_GET['page']}/$nextname-".$anitname[$nextname]."'>".m20."
<i class=\"fa fa-arrow-right fa-fw\" aria-hidden=\"true\"></i></a>";
echo '</p>';
?>
</div>
</article><?php
} else {
//Проверяем по всем страницам любой вложенности
if(isset($_GET['page']) && $_GET['page']!='') {
$uu=' AND (';
for($i=1; $i<=2; $i++) {
if($i>1) $uu.=" OR ";
$uu.="cat".$i."_t='".$_GET['page']."'";
for($z=3;$z>=1;$z--) {
$uu.=" OR cat".$z.$i."_t='".$_GET['page']."'";
}
}
$uu.=" OR cat3_t='".$_GET['page']."')";
}
else $uu='';
//Проверяем наличие товаров в этом разделе
$checktovs=mysqli_query($vista,"SELECT ".$_GET['lan']."name AS name, tname, id, ".$_GET['lan']."shortdescription AS opis, cat1_t, fotoid, dt1, video, cat2_t, url
FROM upz_news WHERE act='1'".$uu." ORDER BY dt1 DESC LIMIT ".$_GET['start'].",".$tunerow['howmany']);
if(mysqli_num_rows($checktovs)>0) {?>
<article class="news grad">
<div class="title padd clear">
<?php include 'modules/path.php';?>
<h1><?php echo $pagename?></h1>
<ul class="flex">
<?php
while($kon=mysqli_fetch_array($checktovs)) {
$kon[0]=stripslashes($kon[0]);
$img='';
$checkfoto=glob('im/news/sm-'.$kon['fotoid'].'-1.*');
if(count($checkfoto)>0 && trim($checkfoto[0])!='') $img = '<img src="'.$sn.'/'.$checkfoto[0].'" alt="'.$kon[0].'" /><br />';
$url=$sn.$lana.'/'.$kon['cat1_t'].'/'.$kon['id'].'-'.$kon['tname'];
?>
<li>
<p><a href="<?php echo $url?>"><?php echo $img.$kon[0]?></a></p>
<p><?php echo stripslashes($kon['opis'])?></p>
</li>
<?php } ?>
</ul>
<?php
$results65=mysqli_query($vista,"SELECT id FROM upz_news WHERE act='1'".$uu);
$suma65=mysqli_num_rows($results65);
if($suma65>$tunerow['howmany']){
echo '<div class="bottomms">';
$pages=ceil($suma65/$tunerow['howmany']);
#$sp=1;
if(!isset($_GET['i']) || $_GET['i']=='') $_GET['i']=0;
for($i=$_GET['i'];$i<$pages;$i++) {
$start=$i*$tunerow['howmany']; $s=$i+1;
if($i==$_GET['i']) {
$back=$_GET['i']-5;
if($back>=0) echo "<a href='".$sn.$lana."/{$_GET['page']}/$start/$back'><i class=\"fas fa-arrow-left\"></i></a>";
}
if($_GET['start']==$start) echo "<span class='rp'>$s</span>";
else {
if($start==0) echo "<a href=\"".$sn.$lana."/{$_GET['page']}\" class='rp'>$s</a>";
else echo "<a href=\"".$sn.$lana."/{$_GET['page']}/$start/{$_GET['i']}\" class='rp'>$s</a>";
}
if(($i%5)==0 && $i!=$_GET['i']) {echo "<a href='".$sn."/{$_GET['page']}/$start/$i'><i class=\"fas fa-arrow-right\"></i></a>"; break;}
}
echo "</div>";
}
?>
</div>
</article><?php }
}
?>
Ответы (1 шт):
Судя по всему за количество элементов, отображаемых на странице, отвечает переменная $tunerow['howmany']. По умолчанию, видимо, стоит значение равное 10. Попробуйте в блоке <?php, после строки include переинициализировать переменную $tunerow['howmany'] = 9;