相続、親が弱ってきたら銀行の預金は親の面倒を見ているものが全て解約して管理すべきである、銀行は解約させない!!

students mysql php ページング処理方法

MySQL
スポンサーリンク

php

mysql -u root -p

create database students;

use students;

GRANT SELECT,UPDATE,INSERT,DELETE ON students.* TO ‘user’@’localhost’;

//MyISAM で作ったほうがトラブルは少ないそうだ

CREATE TABLE `students` ( `ID` int(11) NOT NULL auto_increment, `Name` varchar(250) NOT NULL, `PhoneNumber` varchar(250) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT;

INSERT INTO students (Name,PhoneNumber) VALUES(‘藤本孝彦’,’0781234567′);

INSERT INTO students (Name,PhoneNumber) VALUES(‘藤本かよ子’,’0781234568);

INSERT INTO students (Name,PhoneNumber) VALUES(‘藤本太郎’,’0781234569′);

INSERT INTO students (Name,PhoneNumber) VALUES(‘藤本花子’,’0781234561);

 

20レコードのみを表示するようにクエリーで制限できる

$sql = "SELECT * FROM students ORDER BY name ASC LIMIT 0, 20";

 

最初のレコードから名前順にソートされた20レコードを返します

$sql = "SELECT * FROM students ORDER BY name ASC LIMIT 0, 20";

基本的にこの節(LIMIT start、count)では “start”は開始レコードを指定し、 “count”は表示するレコードの数を指定します

 

Webブラウザでindex.phpを開くと、 “students”テーブルの$start_fromレコードから$results_per_pageレコード分を示すテーブルが表示されます。

if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $results_per_page;
別のページに移動するためにURLを使用して “page”値を渡すことがわかります(index.php?page = 2など)
次に、テーブルの総レコード数と必要なページ数を調べる必要があります。これを行うために、COUNT()関数を使用して別のクエリを実行します。
$sql= "SELECT COUNT(ID) AS total FROM ".$datatable;
$result= $conn->query($sql);
$row= $result->fetch_assoc();
$total_pages= ceil($row["total"] / $results_per_page);
PHPを使用して必要なページ数を計算するには、ceil()関数を使用します。
$total_pages = ceil($total_records / $results_per_page);
レコードの総数を1ページあたりのレコード数で割ったあと、ceil()関数は結果を切り上げます
各ページのリンクを表示する
<?php
for ($i=1; $i<=$total_pages; $i++) {
    echo "<a href='index.php?page=".$i."'>".$i."</a> ";
};
?>

 

mkdir /var/www/html/students

vi /var/www/html/students/config.php

<?php
error_reporting(0);
$servername = “localhost”;
$username = “user”;
$password = “パスワード”;
$dbname = “students”;
$datatable = “students”; // MySQL table name
$results_per_page = 20; // number of results per page

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die(“Connection failed: ” . $conn->connect_error);
}
?>

 

vi /var/www/html/students/index.php

<?php
include(‘config.php’);
if (isset($_GET[“page”])) { $page = $_GET[“page”]; } else { $page=1; };
$start_from = ($page-1) * $results_per_page;
$sql = “SELECT * FROM “.$datatable.” ORDER BY ID ASC LIMIT $start_from, “.$results_per_page;
$rs_result = $conn->query($sql);
?>
<table border=”1″ cellpadding=”4″>
<tr>
<td bgcolor=”#CCCCCC”><strong>ID</strong></td>
<td bgcolor=”#CCCCCC”><strong>Name</strong></td><td bgcolor=”#CCCCCC”><strong>Phone</strong></td></tr>
<?php
while($row = $rs_result->fetch_assoc()) {
?>
<tr>
<td><?php echo $row[“ID”]; ?></td>
<td><?php echo $row[“Name”]; ?></td>
<td><?php echo $row[“PhoneNumber”]; ?></td>
</tr>
<?php
};
?>
</table>

<?php
$sql = “SELECT COUNT(ID) AS total FROM “.$datatable;
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_pages = ceil($row[“total”] / $results_per_page); // calculate total pages with results

for ($i=1; $i<=$total_pages; $i++) { // print links for all pages
echo “<a href=’index.php?page=”.$i.”‘”;
if ($i==$page) echo ” class=’curPage'”;
echo “>”.$i.”</a> “;
};
?>

MySQLPHP
スポンサーリンク
シェアする
ふじやんをフォローする
スポンサーリンク

コメント