PHP &

3 Cevap php

Ben bir MySQL sorgu var

SELECT * FROM 'redirect'
WHERE 'user_id'= \''.$_SESSION['user_id'].' \' 
ORDER BY 'timestamp'`

Sayfa başına 10 sonuç sayfalandırmamayı istiyorum. Ben bunu nasıl yapabilir miyim?

3 Cevap

Burada güzel bir başlangıç ​​noktasıdır:

<?php

// insert your mysql connection code here

$perPage = 10;
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$startAt = $perPage * ($page - 1);

$query = "SELECT COUNT(*) as total FROM redirect
WHERE user_id = '".$_SESSION['user_id']."'";
$r = mysql_fetch_assoc(mysql_query($query));

$totalPages = ceil($r['total'] / $perPage);

$links = "";
for ($i = 1; $i <= $totalPages; $i++) {
  $links .= ($i != $page ) 
            ? "<a href='index.php?page=$i'>Page $i</a> "
            : "$page ";
}


$r = mysql_query($query);

$query = "SELECT * FROM 'redirect'
WHERE 'user_id'= \''.$_SESSION['user_id'].' \' 
ORDER BY 'timestamp' LIMIT $startAt, $perPage";

$r = mysql_query($query);

// display results here the way you want

echo $links; // show links to other pages

Kullan LIMIT.

SELECT *
FROM redirect
WHERE user_id = '35251' 
ORDER BY timestamp
LIMIT 40, 10

40 atlamak için kaç kayıt olduğunu, 10 görüntülemek kaç olduğunu.

Lütfen PHP ile birkaç sorunlar da vardır. Tablo ve sütun adlarını çevreleyen backticks (tek tırnak değil) kullanın. Ve sizin sorgu oluşturmak için dize birleştirme kullanmak gerekir.

Eğer veritabanından almak sonuçların miktarını sınırlamak için sorgu SINIR clausule kullanın.

Bkz: http://dev.mysql.com/doc/refman/5.1/en/select.html