|
|
|
รบกวนแนะนำ PHP ดึงข้อมูลจาด DB แสดงข้อมูลเรียงแนวตั้ง(มีภาพครับ) |
|
|
|
|
|
|
|
ใช้ css แบ่ง column เอาไม่ได้เหรอ? ทำเป็น grid งี้?
ผมว่ามันอยู่ที่ css เป็นหลักนะ มันก็เอา table ธรรมดาก็ได้ เอา if มาช่วยแสดงครบ 5 แล้วขึ้น table ใหม่ไรงี้
|
|
|
|
|
Date :
2016-08-02 19:41:38 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษครับผมถามไม่ชัดเจน
รูปภาพคือตัวอย่างนะครับที่ถามไม่ได้หมายถึงหน้าตาครับ
เพิ่มเติมครับ คือผมคิวรี่ข้อมูลมาจากฐานข้อมูลแล้วนะครับ
จากนั้นต้องการนำข้อมูลที่คิวรี่มาได้ออกมาแสดง ทั้งหมด 70 เรทคอร์ด เรียงเป็นแถว 3 แถว
โดยข้อมูลใน1เรทคอร์ดมี 3 ฟิว ลำดับ,ชื่อ,ราคา
ซึ่งปกติการเราคิวรี่ข้อมูลมาและ repeat ข้อมูลมาแสดงจะออกมาแบบนี้ครับ
No. Name Price
1 test1 1000
2 test1 1000
3 test1 1000
4 test1 1000
.
.
.N
--------------------------------------------
สิ่งที่อยากถามครับและต้องการคือเรียงแนวตั้ง เมื่อครบมาเรียงใหม่อีก 1 คอลัม..ไปจนครบ
1 25 49
2 26 50
3 27 51
4 28 52
. . .
. . .
. . 70
24 48
รบกวนท่านที่พอเข้าใจช่วยแนะนำด่วยครับ
|
|
|
|
|
Date :
2016-08-03 13:01:06 |
By :
gigiyo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำแบบง่ายๆก่อนครับ คิวรี่แยก และใช้ ตัวแปรแทนค่า limit
|
|
|
|
|
Date :
2016-08-03 16:00:21 |
By :
gigiyo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองวิธีนี้ดูครับ
Code (PHP)
<?php
$user = 'tobedev';
$pass = 'dev.1234';
try {
$dbh = new PDO('mysql:host=localhost:33065;dbname=tobedev_example', $user, $pass);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$stm = $dbh->prepare("SELECT name, price FROM tb_product LIMIT 14");
$stm->execute();
$data = array();
$no=1;
while($result = $stm->fetch(PDO::FETCH_ASSOC)){
$result['no'] = $no++;
$data[] = $result;
}
$count = count($data); //หาจำนวนข้อมูลทั้งหมด
$row_num = 5; //กำหนดจำนวนแถวที่ต้องการ
$col_num = ceil($count/$row_num); //จำนวนคอลัมน์ที่จะแสดง
//สร้างอาร์เรย์ชุดใหม่
$new_data = array();
for($i=0;$i<$row_num;$i++) //วนลูปตามจำนวนแถวที่ต้องการ
{
$row = array();
$index = $i;
for($j=0;$j<$col_num;$j++) //วนลูปตามจำนวนคอลัมน์ที่คำนวณได้
{
$row[] = isset($data[$index]) ? $data[$index] : '';
$index += $row_num;//เลื่อนลำดับข้อมูลของคอลัมน์ต่อไป
}
$new_data[] = $row;
}
//สร้างตารางข้อมูล
echo '<table border=1 cellpadding=5 cellspaceing=1>';
//สร้างหัวข้อ
echo '<tr>';
for($i=0;$i<$col_num;$i++) //วนลูปตามจำนวนคอลัมน์ที่คำนวณได้
{
echo "<th>No</th>
<th>Name</th>
<th>Price</th>";
}
echo '</tr>';
//สร้างข้อมูล
foreach ($new_data as $row) {
echo "<tr>";
foreach ($row as $data) {
echo "<td style='background-color:#eeeeee'>$data[no]</td>
<td>$data[name]</td>
<td>$data[price]</td>";
}
echo "</tr>";
}
echo '</table>';
//echo '<pre>',print_r($new_data,true), '</pre>';
$stm = null;
$dbh = null;
?>
|
|
|
|
|
Date :
2016-08-04 06:22:22 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<table class="table" id="tableRoom">
<tbody>
<hr>
<?php
if ($mysql->query(" SELECT * FROM [tb_room] ORDER BY CONVERT([nameRoom] USING tis620) ASC") > 0) {
$no = 1;
$i = 0;
$col = 4;
while ($rs = $mysql->fetch()) {
//echo $i;
if ($i % $col === 0) {
echo "<tr>";
}
?>
<td><div class="col-md-12">
<input type="radio" id="room<?php echo $no; ?>" name="room" value="<?php echo $rs['idRoom']; ?>"> <?php echo $rs['nameRoom']; ?>
</div>
</td>
<?php
++$no;
//++$i;
if (($i + 1) % $col === 0) {
echo "</tr>";
}
++$i;
}
}
//echo $i;
if ($i > $col) {
for ($j = $i; $j % $col != 0; ++$j) {
?>
<td><div class="col-md-12"> </div></td>
<?php
}
}
if ($i % $col != 0) {
echo "</tr>";
}
?>
<tr>
<td colspan="4">
<div class="col-md-2"><input type="radio" id="room99" name="room" value="99"> สถานที่(อื่นๆ) </div>
<div class="col-md-4"> <input type="text" class="form-control" name="otherLocation" id="otherLocation"> </div>
</td>
</tr>
<tr>
<td colspan="4">
<div class="col-md-4">
<button type="submit" class="btn btn-primary" id="btnAdd" rel="insert_remote_student"> บันทึก </button>
</div>
</td>
</tr>
</tbody>
</table>
|
|
|
|
|
Date :
2016-08-04 12:33:43 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองใช้ Array key ให้เป็นประโยชน์ดูครับ
Logic ไม่ยาก
* ขออภัย โพสก่อนหน้าไม่ทราบว่าจะแก้ไขยังไง
Code (PHP)
<?php
/**
* ดึงข้อมูลออกมาเป็น Array ที่มี index เป็นลำดับ
* ตัวอย่างข้อมูล
*/
for($i=1; $i<=52; $i++)
{
$data[$i] = ['name'=>'Name'.$i, 'price'=>'Price'.$i];
}
/**
* กำหนดแถวและคอลัมป์
*/
// กำหนดจำนวนคอลัมป์
$total_column = 3;
// แถว เขียน logic หรือ hardcode ไปเลยก็ได้
$total_row = ceil(count($data)/3); // หากมีเศษให้ปัดขึ้น
/**
* สร้างตาราง
*/
// \t = tab , \n = ขึ้นบรรทัดใหม่ เวลา View Source จะได้ดูง่าย
$table = "<table border='1'>\n";
for($row = 1; $row <= $total_row; $row++) // วนแถวตาม
{
$table .= "\t<tr>\n";
for($column = 1; $column <= $total_column; $column++ ) // วนคอลัมป์
{
$index = ($column-1)*$total_row + $row; //หาลำดับ Index
$table .= "\t\t<th>$index</th>\n";
$table .= "\t\t<td>".(isset($data[$index]['name']) ? $data[$index]['name'] : '')."</td>\n";// หากมีข้อมูลใน index นี้ให้แสดง หากไม่มีให้ว่าง
$table .= "\t\t<td>".(isset($data[$index]['price']) ? $data[$index]['price'] : '')."</td>\n";// หากมีข้อมูลใน index นี้ให้แสดง หากไม่มีให้ว่าง
}
$table .= "\t</tr>\n";
}
$table .= "</table>\n";
echo $table;
|
|
|
|
|
Date :
2016-08-04 13:52:39 |
By :
Mansuang |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|