ตัวอย่างนี้ จะเป็นการสร้างตารางแบบมีคอลัมน์ที่ไม่คงที คือทั้งหัวตารางแนวตั้ง และแนวนอน จะสามารถเปลี่ยนแปลงได้ ตามหมวดหมู่ หรือ สินค้าที่เราเลือก
หน้าแสดงผล [table_metrix.php]
ผลลัพธ์ |
ซอร์สโค้ด PHP
เชื่อมต่อฐานข้อมูล [mysql_connect.php]<?php
$conn = mysqli_connect("localhost","tobedev","dev.1234");
if (!$conn->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $conn->error);
exit();
}
$conn->select_db("dev_database");
?>
หน้าแสดงผล [table_metrix.php]
<html>
<head>
<title>PHP MySQL กับการสร้าง Matrix Table : SUNZANDESIGN.BLOGSPOT.COM</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="css/bootstrap.min.css">
<style>
.highlight {
background-color: #FFFF88;
}
.red{
color : #FF006E;
}
.blue{
color : blue
}
</style>
</head>
<body>
<div class="container">
<div class="header clearfix">
<h3 class="text-muted">
<span class="blue">PHP <span style="color:#00A3F9">MySQL</span></span> การสร้าง
<span class="red">Matrix Table</span>
: Facebook.Com/ToBeDeveloper </h3>
</div>
<br/>
<div class="row">
<?php
include "mysql_connect.php";
$conn->select_db("test_code");
$data = array();
$product = array();
$sql = "SELECT Cg.cat_name, Pd.pro_name, Pd.pro_status
FROM Product Pd
INNER JOIN Category Cg ON Pd.cate_id = Cg.cat_id
ORDER BY Cg.cat_name, Pd.pro_name ASC";
//echo $sql;
if ($result = $conn->query($sql)) {
while($row = $result->fetch_array(MYSQLI_ASSOC)){
$cat_name = $row['cat_name'];
$pro_name = $row['pro_name'];
//$data[$cat_name][] = $row;
$data[$cat_name][$pro_name] = $row['pro_status'];
$product[] = $row['pro_name'];
}
/* free result set */
$result->close();
}
$conn->close();
echo '<pre>';print_r($data);echo '</pre>';
?>
<table class="table table-bordered">
<thead>
<tr>
<th>ชื่อหมวดหมู่ / ชื่อสินค้า</th>
<?php
foreach($product as $name){
echo '<th>' . $name . '</th>';
}
?>
</tr>
</thead>
<tbody>
<?php
$title = '';
$no = '';
$max = 0;
$index = 0;
$index_gold = 0;
$prev_title = '';
foreach($data as $cat_name=>$category){
?>
<tr>
<td><?php echo $cat_name;?></td>
<?php
foreach($product as $name){
$pro_status = isset($category[$name]) ? $category[$name] : '-';
echo '<th>' . $pro_status . '</th>';
}
?>
</tr>
<?php }?>
</tbody>
</table>
</div>
</div><!-- container -->
<footer class="footer">
<br/><br/>
<div class="container">
<i>ติดตามความเคลื่อนไหวได้ที่ :: <a href='https://www.facebook.com/ToBeDeveloper'>https://www.facebook.com/ToBeDeveloper</a></i>
</div>
</footer>
</div> <!-- /container -->
<script src="js/jquery.min.js"></script>
<script src="js/highlight.js"></script>
<script>
/*
$('input.price, input.qty').each(function(index) {
var tabindex = index + 1;
$(this).attr("tabindex", tabindex);
$(this).addClass('red');
});
*/
$('.detail').keydown(function(e) {
var pos = $(this).index('input.detail');
console.log(pos);
console.log("KEY : " + e.keyCode);
if (e.keyCode==37) {//Left
pos= pos-1;
$( "input.detail:eq("+ pos +")" ).focus();
}
if (e.keyCode==39) {//Right
pos= pos+1;
$( "input.detail:eq("+ pos +")" ).focus();
}
if (e.keyCode==38) {//UP
pos= pos-2;
$( "input.detail:eq("+ pos +")" ).focus();
}
if (e.keyCode==40) {//Down
pos= pos+2;
$( "input.detail:eq("+ pos +")" ).focus();
}
console.log(pos);
});
</script>
</body>
</html>
โครงสร้างฐานข้อมูล MySQL
--
-- Database: `test_code`
--
-- --------------------------------------------------------
--
-- Table structure for table `Category`
--
CREATE TABLE `Category` (
`cat_id` int(1) NOT NULL,
`cat_name` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `Category`
--
INSERT INTO `Category` (`cat_id`, `cat_name`) VALUES
(1, 'AAA'),
(2, 'BBB');
-- --------------------------------------------------------
--
-- Table structure for table `Product`
--
CREATE TABLE `Product` (
`pro_id` int(1) NOT NULL,
`pro_name` varchar(10) NOT NULL,
`pro_status` varchar(10) NOT NULL,
`cate_id` int(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `Product`
--
INSERT INTO `Product` (`pro_id`, `pro_name`, `pro_status`, `cate_id`) VALUES
(1, 'aaa', 'have', 1),
(2, 'bbb', 'soout', 1),
(3, 'ccc', 'soout', 2),
(4, 'ddd', 'have', 2);
--
-- Indexes for dumped tables
--
--
-- Indexes for table `Product`
--
ALTER TABLE `Product`
ADD PRIMARY KEY (`pro_id`);
PHP CI MANIA - PHP Code Generator
โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ความคิดเห็น
แสดงความคิดเห็น