สำหรับวิธีการสลับสีตารางแบบง่ายๆ ในตัวอย่างนี้ จะเป็นการเปลี่ยนสี bgcolor โดยจะตรวจสอบก่อนว่ารหัสตรงกันหรือไม่ ถ้าตรงกันก็ใช้สีเดิม แต่ถ้ารหัสเปลี่ยนก็ใช้อีกสีสลับกันไป
โค้ด PHP ตัวอย่าง
<?php
$conn = mysqli_connect("localhost","tobedev","abcd.1234", "test"); //ข้อมูลนี้ได้มาจากตอนติดตั้งเว็บเซิร์ฟเวอร์
mysqli_set_charset($conn, "utf8");//ส่วนนี้คือการตั้งค่า encoding แบบสากล ถ้าฐานข้อมูลเป็น tis-620 ก็ต้องเปลี่ยนด้วย
$allData = array();
$strSQL = "SELECT * FROM `example` ";
$qry = mysqli_query($conn, $strSQL) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
while($row = mysqli_fetch_assoc($qry)){
$allData[] = $row;
}
mysqli_close($conn);//ปิดการเชื่อมต่อฐานข้อมูล
?>
<html>
<head>
<title>SunZanDesgin.Blogspot.Com</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
</head>
<body>
<table border="1" width="400">
<tr>
<th>id</th>
<th>code</th>
<th>name</th>
</tr>
<?php
$prev_code = '';
$color1 = '#ffffff';
$color2 = '#cccccc';
$prev_color = $color1;
$bg_color = $color1;
foreach($allData as $row){
if($row['code']==$prev_code){
$bg_color = $prev_color;
}else{
if($prev_color==$color1){
$bg_color = $color2;
}else{
$bg_color = $color1;
}
}
echo "<tr bgcolor='$bg_color'>
<td>$row[id]</td>
<td>$row[code]</td>
<td>$row[name]</td>
</tr>";
$prev_code = $row['code'];
$prev_color = $bg_color;
}
?>
</table>
</body>
</html>
SQL สร้างตารางตัวอย่าง
--
-- Table structure for table `example`
--
CREATE TABLE `example` (
`id` int(11) NOT NULL,
`code` varchar(2) NOT NULL,
`name` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `example`
--
INSERT INTO `example` (`id`, `code`, `name`) VALUES
(1, '01', 'Apple'),
(2, '01', 'Mango'),
(3, '02', 'Pen'),
(4, '02', 'Ruler'),
(5, '03', 'Pan'),
(6, '03', 'Pot'),
(7, '03', 'Cup');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `example`
--
ALTER TABLE `example`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `example`
--
ALTER TABLE `example`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
ความคิดเห็น
แสดงความคิดเห็น