• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

stronicowanie nie działa

Object Storage Arubacloud
0 głosów
359 wizyt
pytanie zadane 5 listopada 2017 w PHP przez mi-20 Stary wyjadacz (13,190 p.)

Witam, zrobiłem prosty skrypt stronicowania, jednak ten nie działa. Skrypt nie powoduje żadnych błędów jednak i tak wyświetlają się wszystkie wyniki na stronie, mógłby ktoś pomóc?

Oto kod:

	function t1($val, $min, $max){
		return ($val >= $min && $val <= $max);
	}
	$count = $connect->query( 'SELECT COUNT(id) as cnt FROM ad')->fetch()['cnt'];
	$page = isset($_GET['page']) ? intval($_GET['page'] - 1) : 1;
	$limit = 10;
	$from = $page * $limit;
	$allPage = ceil($count / $limit);
	$sql = 'SELECT * FROM `ad` LIMIT '.$from.$limit;
	echo 'PAGE: ' . $page . '<br/>';
	echo 'COUNT: ' . $count . '<br/>';
	echo 'LIMIT: ' . $limit . '<br/>';
	echo 'FROM: ' . $from . '<br/>';
	echo 'ALL PAGE: ' . $allPage . '<br/>';
	echo 'SQL: ' . $sql . '<br/>';

	$tbl = $connect->query( $sql );
	foreach( $tbl->fetchAll() as $value){
		$id = $value['id'];
		$photo = $value['ph1_ad'];
		echo '<div class="row-ad">';
echo '<div class="col-lg-3 class">';
        echo '<div class="content-ad">';
            echo '<a class="photo" href="oferta.php?id='.$id.'">' . "<img src='$photo'/>" . '</a>';
            echo '<div class="description">';
                echo '<div class="title_addf"><a href="oferta.php?id='.$id.'">'.$value['title'].'</a>'."</div>";
                echo '<a class="klm" href="oferta.php?id='.$id.'">' . '<i class="icon-link-ext"></i> ' . $value['stan_ad'] . '</a>';
                echo '<a class="klm pr" href="oferta.php?id='.$id.'">' . $value['price_ad'] . ' zł' . '</a>';
                echo '<a class="dd" href="oferta.php?id='.$id.'">' . '<i class="icon-location"></i> ' . $value['loc_ad'] . '</a>';
            echo "</div>";

        echo "</div>";
echo "</div>";
echo "</div>";
	}
	if($page > 4){
		echo '<a href="notice-board.php?page=1"> < pierwsza strona</a> | ';
	}
	for($i = 1; $i <= $allPage; $i++ ){
		$bold = ( $i == ($page + 1))?'style="font-size:24px;"':'';
		if(t1($i, ($page -3), ($page + 5) ) ){
			echo '<a '.$bold . 'href="notice-board.php?page=' . $i .'">' . $i . '<a/> |';
		}
	}
?>

 

1 odpowiedź

+1 głos
odpowiedź 7 listopada 2017 przez xandros Nałogowiec (29,450 p.)
wybrane 7 listopada 2017 przez mi-20
 
Najlepsza

Szczerze? cieżko cokolwiek rozczytać z twojego kodu. Co w ogóle robi funkcja t1? Nazwij ją normalnie.

Jakiś mój stary przykładowy kod:

/**
 * @param int $offset
 * @param int $length
 *
 * @return \Generator
 */
function readImages(int $offset = 0, int $length = 5): \Generator
{
    $stmt = connect()->query("SELECT * FROM gallery ORDER BY created_at,id DESC LIMIT {$offset}, {$length}",
        PDO::FETCH_ASSOC);

    foreach ($stmt as $record) {
        yield $record;
    }
}

/**
 * @return int
 */
function countImages(): int
{
    return connect()->query('SELECT count(*) FROM gallery')->fetch(PDO::FETCH_NUM)[0] ?? 0;
}

//pagination:
$page = (int) ($_GET['page'] ?? 0);
$length = 5;
$offset = $length * $page;
$total = countImages();

//parametry do templatki:
$params = [
        'images' => readImages($offset, $length),
        'pagination' => [
            'prev' => $page - 1 < 0 ? false : $page - 1,
            'next' => $total < $offset + $length * 2 ? false : $page + 1,
        ],
];
<!-- pagination w templatce -->
<section class="pagination">
        <?php if ($pagination['prev'] !== false): ?>
            <a href="?page=<?= $pagination['prev'] ?>">Previous</a>
        <?php endif; ?>
        <?php if ($pagination['next'] !== false): ?>
            <a href="?page=<?= $pagination['next'] ?>">Next</a>
        <?php endif; ?>
</section>
<!-- template wyswietlania postow/galerii/produktow -->
 <ul>
        <?php foreach ($images as $image): ?>
<li>
    <article id="<?= $image['id'] ?>">
        <img width="300px" src="<?= $image['path'] ?>" alt="image <?= $image['id'] ?>">
    </article>
</li>
        <?php endforeach; ?>
</ul>

A tu jakiś stary projekt paginacji dla SlimPHP: https://github.com/xandros15/SlimPagination

Podobne pytania

0 głosów
1 odpowiedź 212 wizyt
pytanie zadane 17 lipca 2017 w PHP przez fred Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 759 wizyt
pytanie zadane 26 maja 2017 w PHP przez sobi94 Początkujący (270 p.)
0 głosów
1 odpowiedź 611 wizyt
pytanie zadane 20 września 2017 w Systemy operacyjne, programy przez kd224 Nowicjusz (220 p.)

92,552 zapytań

141,399 odpowiedzi

319,533 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...