ちゃんと覚えておけよ?

忘れちゃいけない事のメモ、覚え書き

SQLite内のデータをPHPで10ずつ表示する方法

SQLite内のデータをPHPで10ずつ表示する方法
10件ずつ取り出してそれ以外は次のページ次のページへと表示をする。


<?php
$atpage = 5;

$link = sqlite_open(‘data.db’, 0666, $sqliteerror);
if (!$link) {
die(‘接続失敗です。’.$sqliteerror);
}

if (isset($_GET[‘pageno’])) {
$pagenum = $_GET[‘pageno’];
}
else {
$pagenum = 0;
}

$sql = ‘select count(*) as cnt from data where date’;
$result = sqlite_query($link,$sql) or die($sqliteerror . ‘:’ . $sql);
$row=sqlite_fetch_array($result);
$reccnt = $row[0];
if ($reccnt == 0) {
print ‘NoData’;
exit;
}

$start = $pagenum * $atpage;
$sql = ‘select * from data where date order by id ‘ .
‘ limit ‘ . $start . ‘, ‘ . ($atpage + 1);
$result = sqlite_query($link,$sql) or die($sqliteerror . ‘:’ . $sql);

$lcnt = 0;
while ($row = sqlite_fetch_array($result)) {
$lcnt++;
if ($lcnt > $atpage) {
break;
}
if ($lcnt == 1) {
print ‘(ヘッダ)<br />’;
}
print ($start + $lcnt) . ‘:’ . $row[0] . ‘:’ . $row[1] . ‘<br />’ . PHP_EOL;
}

if ($lcnt <> 0) {
print ‘(フッタ)<br />’;
}
if ($pagenum <> 0) {
print ‘<a href=”?pageno=’ . ($pagenum – 1) . ‘”>prev</a>’;
}
else {
print ‘prev’;
}
print “ : ”;
if ($lcnt > $atpage) {
print ‘<a href=”?pageno=’ . ($pagenum + 1) . ‘”>next</a>’;
}
else {
print ‘next’;
}
print “<hr />” . PHP_EOL;
print ‘p.’ . ($pagenum + 1) . ‘/’ . ceil($reccnt / $atpage) . ‘<br />’ . PHP_EOL;

//データベース切断
sqlite_close($link);

?>

Comment

*