ใช้ css แบ่งเนื้อหา เป็นคอลัมน์ พร้อมแบ่งหน้า ด้วย php
07 August 2010ตัวอย่างโค้ดต่อไปนี้ เป็นการประยุกต์ใช้งาน css ในการแบ่งเนื้อหาที่ต้องการแสดง
เป็นคอมลัมน์ ตามที่ต้องการ พร้อมกับการแบ่งหน้า สะดวกในการนำไปประยุกต์ใช้ เช่น ใช้กับการ
แบ่งเนื้อหาข่าว หรือบทความ หรือ gallery รูปภาพเป็นคอลัมน์
ทดสอบการปรับแต่ง และดูผลลัพธ์ ก่อนการใช้งาน
SQL ข้อมูลจังหวัดสำหรับ ทดสอบ
-- -- Table structure for table `province` -- CREATE TABLE `province` ( `id_province` int(11) NOT NULL auto_increment, `name_province` varchar(255) NOT NULL default '', `id_region` varchar(255) NOT NULL default '', PRIMARY KEY (`id_province`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=77 ; -- -- Dumping data for table `province` -- INSERT INTO `province` VALUES (1, 'กรุงเทพมหานคร', '1'); INSERT INTO `province` VALUES (2, 'กาญจนบุรี', '1'); INSERT INTO `province` VALUES (3, 'จันทบุรี', '4'); INSERT INTO `province` VALUES (4, 'ฉะเชิงเทรา', '1'); INSERT INTO `province` VALUES (5, 'ชลบุรี', '4'); INSERT INTO `province` VALUES (6, 'ชัยนาท', '1'); INSERT INTO `province` VALUES (7, 'ตราด', '4'); INSERT INTO `province` VALUES (8, 'นครนายก', '1'); INSERT INTO `province` VALUES (9, 'นครปฐม', '1'); INSERT INTO `province` VALUES (10, 'นนทบุรี', '1'); INSERT INTO `province` VALUES (11, 'ปทุมธานี', '1'); INSERT INTO `province` VALUES (12, 'ปราจีนบุรี', '1'); INSERT INTO `province` VALUES (13, 'ประจวบคีรีขันธ์', '1'); INSERT INTO `province` VALUES (14, 'พระนครศรีอยุธยา', '1'); INSERT INTO `province` VALUES (15, 'เพชรบุรี', '1'); INSERT INTO `province` VALUES (16, 'ลพบุรี', '1'); INSERT INTO `province` VALUES (17, 'ราชบุรี', '1'); INSERT INTO `province` VALUES (18, 'ระยอง', '4'); INSERT INTO `province` VALUES (19, 'สมุทรปราการ', '1'); INSERT INTO `province` VALUES (20, 'สมุทรสงคราม', '1'); INSERT INTO `province` VALUES (21, 'สมุทรสาคร', '1'); INSERT INTO `province` VALUES (22, 'สระบุรี', '1'); INSERT INTO `province` VALUES (23, 'สระแก้ว', '1'); INSERT INTO `province` VALUES (24, 'สิงห์บุรี', '1'); INSERT INTO `province` VALUES (25, 'สุพรรณบุรี', '1'); INSERT INTO `province` VALUES (26, 'อ่างทอง', '1'); INSERT INTO `province` VALUES (27, 'กระบี่', '2'); INSERT INTO `province` VALUES (28, 'ชุมพร', '2'); INSERT INTO `province` VALUES (29, 'ตรัง', '2'); INSERT INTO `province` VALUES (30, 'นครศรีธรรมราช', '2'); INSERT INTO `province` VALUES (31, 'นราธิวาส', '2'); INSERT INTO `province` VALUES (32, 'ปัตตานี', '2'); INSERT INTO `province` VALUES (33, 'พังงา', '2'); INSERT INTO `province` VALUES (34, 'พัทลุง', '2'); INSERT INTO `province` VALUES (35, 'ภูเก็ต', '2'); INSERT INTO `province` VALUES (36, 'ระนอง', '2'); INSERT INTO `province` VALUES (37, 'ยะลา', '2'); INSERT INTO `province` VALUES (38, 'สงขลา', '2'); INSERT INTO `province` VALUES (39, 'สตูล', '2'); INSERT INTO `province` VALUES (40, 'สุราษฏร์ธานี', '2'); INSERT INTO `province` VALUES (41, 'กาฬสินธุ์', '6'); INSERT INTO `province` VALUES (42, 'ขอนแก่น', '6'); INSERT INTO `province` VALUES (43, 'ชัยภูมิ', '6'); INSERT INTO `province` VALUES (44, 'นครพนม', '6'); INSERT INTO `province` VALUES (45, 'นครราชสีมา', '6'); INSERT INTO `province` VALUES (46, 'บุรีรัมย์', '6'); INSERT INTO `province` VALUES (47, 'เลย', '6'); INSERT INTO `province` VALUES (48, 'ยโสธร', '6'); INSERT INTO `province` VALUES (49, ' ร้อยเอ็ด', '6'); INSERT INTO `province` VALUES (50, 'มหาสารคาม', '6'); INSERT INTO `province` VALUES (51, 'มุกดาหาร', '6'); INSERT INTO `province` VALUES (52, 'สกลนคร', '6'); INSERT INTO `province` VALUES (53, 'หนองคาย', '6'); INSERT INTO `province` VALUES (54, 'หนองบัวลำภู', '6'); INSERT INTO `province` VALUES (55, 'ศรีสะเกษ', '6'); INSERT INTO `province` VALUES (56, 'สุรินทร์', '6'); INSERT INTO `province` VALUES (57, 'อุดรธานี', '6'); INSERT INTO `province` VALUES (58, 'อำนาจเจริญ', '6'); INSERT INTO `province` VALUES (59, 'อุบลราชธานี', '6'); INSERT INTO `province` VALUES (60, 'กำแพงเพชร', '5'); INSERT INTO `province` VALUES (61, 'ตาก', '5'); INSERT INTO `province` VALUES (62, 'นครสวรรค์', '5'); INSERT INTO `province` VALUES (63, 'น่าน', '5'); INSERT INTO `province` VALUES (64, 'พิจิตร', '5'); INSERT INTO `province` VALUES (65, 'พิษณุโลก', '5'); INSERT INTO `province` VALUES (66, 'พะเยา', '5'); INSERT INTO `province` VALUES (67, 'เชียงใหม่', '5'); INSERT INTO `province` VALUES (68, 'เชียงราย', '5'); INSERT INTO `province` VALUES (69, 'เพชรบูรณ์', '5'); INSERT INTO `province` VALUES (70, 'แพร่', '5'); INSERT INTO `province` VALUES (71, 'แม่ฮ่องสอน', '5'); INSERT INTO `province` VALUES (72, 'ลำปาง', '5'); INSERT INTO `province` VALUES (73, 'ลำพูน', '5'); INSERT INTO `province` VALUES (74, 'สุโขทัย', '5'); INSERT INTO `province` VALUES (75, 'อุตรดิตถ์', '5'); INSERT INTO `province` VALUES (76, 'อุทัยธานี', '5');
โค้ดเต็มสำหรับทดสอบ
<?php
// ทำการเชิ่อมต่อฐานข้อมูล
$link=mysql_connect("localhost","root","test") or die("error".mysql_error());
mysql_select_db("test",$link) or die ('Can't use Database : ' . mysql_error());;
?>
<?php
// ส่วนของการกำหนดค่า
$setContainBox=500; // ความกว้างของพื้นที่เนื้อหา
$setNumColumn=2; //จำนวนคอลัมน์ที่ต้องการแสดง
$setNumRow=3; // จำนวนแถวที่ต้องการแสดง
$setHeightColumn=75; //ความสูงของแต่ละแถว
$setMarginColumn=2; // ระยะห่างระหว่างแถวและระหว่างคอลัมน์
$setWidthBorder=1; // ความกว้างเส้นขอบ
$setWidthColumn=($setContainBox/$setNumColumn)-(($setMarginColumn*$setNumColumn)+($setWidthBorder*$setNumColumn)*2);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>learn mysql function</title>
<style type="text/css">
body{
font-size:12px;
}
/* css ส่วนตัวเลขแสดงการแบ่งหน้า */
.mynavi{
display:block;
width:25px;
height:20px;
text-align:center;
text-decoration:none;margin-right:3px;
background-color:#99CC33;
color:#FFFFFF;
float:left;
font-size:12px;
line-height:20px;
}
/* css ส่วนตัวเลขแสดงการแบ่งหน้า กรณีเมาส์ over หรืออยู่ในหน้านั้น */
.mynavi:hover,.mynavi_active{
display:block;
width:25px;
height:20px;
text-align:center;
text-decoration:none;margin-right:3px;
background-color:#000000;
color:#FFFFFF;
float:left;
font-size:12px;
line-height:20px;
}
/* css ส่วนกำหนดรายละเอียดจำนวนหน้า */
.pgnavi{
display:block;
height:25px;
font-size:12px;
line-height:20px;
float:left;
margin-left:50px;
margin-right:3px;
}
/* css ส่วนพื้นที่เนื้อหา มีการรับค่าจากตัวแปร PHP */
.showInColumn{
display:block;
list-style:none;
margin:0;
padding:0;
width:<?=$setContainBox?>px;
background-color:#FCC;
}
/* css ส่วนพื้นที่เนื้อหาลิสรายการ มีการรับค่าจากตัวแปร PHP */
.listColumn{
display:block;
margin:<?=$setMarginColumn?>px;
height:<?=$setHeightColumn?>px;
width:<?=$setWidthColumn?>px;
float:left;
border:<?=$setWidthBorder?>px solid #CCC;
}
</style>
</head>
<body>
<?php
// สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า
function page_navigator($before_p,$plus_p,$total,$total_p,$chk_page){
echo "<span class=pgnavi>".$before_p." to ".$plus_p." of ".$total." | Go to Page</span> ";
for($i=0;$i<$total_p;$i++){
$now_class=($chk_page==$i)?"mynavi_active":"mynavi";
echo "<a class='".$now_class."' href='?s_page=$i'>".intval($i+1)."</a> ";
}
}
?>
<?php
$q="select * from province "; // แก้ไขขื่อตารางตามต้องการ
$qr=mysql_query($q);
$total=mysql_num_rows($qr);
$e_page=$setNumRow*$setNumColumn; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า
if(!isset($_GET['s_page'])){
$_GET['s_page']=0;
}else{
$chk_page=$_GET['s_page'];
$_GET['s_page']=$_GET['s_page']*$e_page;
}
$q.=" limit ".$_GET['s_page'].",$e_page";
$qr=mysql_query($q);
if(mysql_num_rows($qr)>=1){
$plus_p=($chk_page*$e_page)+mysql_num_rows($qr);
}else{
$plus_p=($chk_page*$e_page);
}
$total_p=ceil($total/$e_page);
$before_p=($chk_page*$e_page)+1;
?>
<?
mysql_set_charset("utf8",$link);
$q="select * from province limit ".$_GET['s_page'].",$e_page"; // แก้ไขขื่อตารางตามต้องการ
$qr=mysql_query($q);
echo "<ul class='showInColumn'>";
while($rs=mysql_fetch_array($qr)){
// echo $rs['name_province']."<br>";
?>
<li class='listColumn'><?=$rs['name_province']?></li>
<?php
}
echo "</ul>";
mysql_close($link);
?>
<br style="clear:both;" />
<br style="clear:both;" />
<?php
// เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า
page_navigator($before_p,$plus_p,$total,$total_p,$chk_page);
?>
</body>
</html>
บทความคนเข้าอ่านวันนี้
12 Aug 10 ประยุกต์ ใช้ jQuery สร้างข้อความเลื่อน ซ้าย ขวา คล้าย marquee อ่าน 2559 09 May 10 ดึงค่า ข้อมูล จาก xml ไฟล์ มากำหนดเป็นตัวแปร array ด้วย php อ่าน 2151 05 Nov 08 CSS สร้างเมนูแนวนอน 2 ชั้นโดยไม่ใช้ javascript และตาราง table อ่าน 10257 02 May 10 ใช้งาน ajax ใน jQuery ดึงข้อมูลจากฐานข้อมูลมาแสดง ใน tooltip อ่าน 5973 12 Sep 10 การดึง attribute และค่าต่างๆ จาก xml ไฟล์ด้วย jQuery อย่างง่าย อ่าน 2426 02 Apr 09 สร้างรายการตัวเลือกให้กับ input text ด้วย jQuery อย่างง่าย อ่าน 4089 09 Jul 10 เพิ่มความเร็ว ให้กับการ cache ด้วย jquery ajax และ php cache class อ่าน 2299 25 Sep 08 ฟังก์ชั่นเกี่ยวกับ วันที่ เวลา ใน javascript อ่าน 7137 06 Mar 11 แนะนำ ปลั๊กอิน comment ตัวใหม่ของ facebook อ่าน 3274 18 Mar 09 เพิ่มลดขนาดตัวอักษรในหน้าเว็บแบบง่ายด้วย jQuery อ่าน 3131 19 Jul 10 การนำ ระบบสมาชิก ของ facebook มาประยุกต์ใช้ อ่าน 5416 25 Sep 08 Jquery javascript library มาแรง อ่าน 6385 17 Sep 10 กำหนด infowindow ให้กับตัว marker จำนวนมาก ใน google map อ่าน 2932 08 Dec 09 แปลง jQuery object เป็น DOM object อ่าน 2476 06 Jan 09 บวกวันใน javascript ด้วยฟังก์ชัน day add อย่างง่าย อ่าน 3851 06 Oct 10 การใช้งาน graph api ของ facebook ด้วย php sdk อ่าน 3703 14 Mar 09 สร้าง tooltip กล่องข้อความตัวช่วยเหลือได้ง่ายด้วย jQuery อ่าน 7878 08 Oct 10 การอัพเดท สถานะบน facebook อัตโนมัติ แบบ graph api ด้วย php sdk อ่าน 3534 23 Nov 08 สร้างเมนูแท็บ Tab menu ด้วย jQuery + CSS อย่างง่าย อ่าน 24732 11 Jan 12 รู้จัก และใช้งาน DATEDIFF() ใน mysql ฟังก์ชัน เทียบช่วงเวลาที่เหลือ อ่าน 414
