|
|
|
สอบถาม การดึงข้อมูลมาโชว์ เป็นกลุ่ม ครับ ผมดึงมาได้แล้ว แต่ ยังไม่ตรงความต้องการเท่าไหร่ ครับ |
|
|
|
|
|
|
|
ผมดึงมาโชว์ได้แล้ว คับ แต่ไม่ค่อยตรงความต้องการเท่าไหร่
ในกรอบสีแดง แสดงถูกแล้ว คับ ส่วนในกรอบสีเขียว ยังไม่ถูก ครับ คืออยากให้แถวนั้นแสดงข้อมูลเฉพาะชุดนั้นครับ 2013-12 ทั้งหมด ส่วน ในกรอบสีเหลือง ให้ ดึงลงมาข้างล้าง ครับ เพื่อจะได้เป็นเซ็ตเดียวกัน
รบกวนดูให้ที ครับ
Code (PHP)
<?php
// SELECT DATE_FORMAT(Date,'%Y-%m') As MyDate FROM audit WHERE DATE_FORMAT(Date,'%m-%d') = '07-01'
$select_date=mysql_query("SELECT distinct order_date, count(order_generation) AS V_TOTAL_new1 , SUM(size_new) AS V_TOTAL_new , DATE_FORMAT(order_date,'%Y-%m') AS Mydate , check_status , order_generation AS V_TOTAL2_
FROM `genneration_size`
Group by DATE_FORMAT(order_date,'%Y-%m') , order_generation");
?>
<table width="100%" border="1" align="left" cellpadding="5" cellspacing="0">
<tr>
<?
$i=1;
while($row_qu=mysql_fetch_array($select_date)){
?>
<th width="91"> <div align="center"><?=$date_3[]=$row_qu[Mydate] ?>
</div></th>
<?
if($i % 9==0) // ขึ้นแถวไหม่ เมื่อครบ9
{
echo"</tr>";
}
$i++;
}
?>
</tr>
</table>
Tag : PHP, MySQL, HTML/CSS, JavaScript, jQuery
|
ประวัติการแก้ไข 2013-07-17 18:42:35
|
|
|
|
|
Date :
2013-07-17 17:43:25 |
By :
031130 |
View :
4350 |
Reply :
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ครับ ผมลองทำตามที่พี่บอก ผลลัพธ์เป็นแบบนี้ ครับ ยังออกไม่ตรงอยู่ดี รบกวนอีกทีครับ
Code (PHP)
<?
$i=1;
$oldDate=" ";
while($row_qu=mysql_fetch_array($select_date)){
?>
<th width="95" class="sfs"><?=$date_3[]=$row_qu[Mydate] ?></th>
<?
if(($i % 9==0) || $row_qu[Mydate] != $oldDate) // ขึ้นแถวไหม่ เมื่อครบ9
{
echo"</tr>";
}
$oldDate = $row_qu[Mydate];
$i++;
}
?>
|
|
|
|
|
Date :
2013-07-18 09:23:30 |
By :
031130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยแนะนำเพิ่มเติม หน่อย คับ ถ้า ไม่ได้อยู่ในกลุ่ม เดือน เดียวกัน ให้ ตัดขึ้นบรรทัดใหม่ ครับ ตอนนี้เเหมือนยัง ปนกัน อยู่
|
|
|
|
|
Date :
2013-07-19 13:29:13 |
By :
031130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
if( ($i % 9)==0 || $row_qu[Mydate] != $oldDate){
echo"</tr>";
$i = 0;
}
$oldDate = $row_qu[Mydate];
เคลียร์ค่า $i ให้เป็น 0 ครับ
เมื่อเจอ $i++ ด้านล่าง $i จะมีค่าเป็น 1 อีกครั้ง
|
|
|
|
|
Date :
2013-07-19 13:47:00 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผลลัพธ์ ได้ออกมาแบบนี้ ครับ ผมแก้ หรือใส่ผิดรึเปล่า ครับ
Code (PHP)
<table width="1000" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td width="488" align="center" valign="top"><table style="padding:0px;margin:0px" width="95" border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#CCCCCC">
<tr>
<?
$oldDate="";
$i=1;
while($row_qu=mysql_fetch_array($select_date)){
?>
<th width="95" class="sfs">$date_3[]=$row_qu[Mydate] ?></th>
<?
if( ($i % 9)==0 || $row_qu[Mydate] != $oldDate){
echo"</tr>";
$i = 0;
$oldDate = $row_qu[Mydate];
}
$i++;
}
?>
</tr>
</table>
ผลลัพธ์จากโค๊ด ครับ
|
|
|
|
|
Date :
2013-07-19 14:40:56 |
By :
031130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(($i % 9==0) || ($row_qu[Mydate] != $oldDate && $oldDate != '')) // ขึ้นแถวไหม่ เมื่อครบ9
ลองแก้แล้วรันอีกทีครับ
ค่อยๆ แก้ทีละนิด
|
|
|
|
|
Date :
2013-07-19 17:16:38 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ตามพี่บอก ลองรันแล้ว คับ ไม่อยู่ในกลุ่มเหมือนเดิม ครับ
Code (PHP)
<?
$i=0;
$oldDate='';
while($row_qu=mysql_fetch_array($select_date)){
?>
<th width="95" class="sfs"><?=$date_3[]=$row_qu[Mydate] </th>
<?
if(($i % 9==0) || ($row_qu[Mydate] != $oldDate && $oldDate != '')){ // ขึ้นแถวไหม่ เมื่อครบ9
echo"</tr>";
$i=0;
}
$oldDate = $row_qu[Mydate];
$i++;
}
?>
|
ประวัติการแก้ไข 2013-07-19 18:21:21
|
|
|
|
Date :
2013-07-19 18:20:43 |
By :
031130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?
$i=1;
$oldDate="";
while($row_qu=mysql_fetch_array($select_date)){
?>
<th width="95" class="sfs"><?=$date_3[]=$row_qu['Mydate']?></th>
<?
if( ($i % 9) ==0 || ( $oldDate != "" && $row_qu['Mydate'] != $oldDate) ) // ขึ้นแถวไหม่ เมื่อครบ9
{
echo"</tr><tr>";
$i=1;
}else{
$i++;
}
$oldDate = $row_qu['Mydate'];
}
?>
ลองแก้ดูอีกทีครับ มองไม่ออกว่าพลาดตรงไหน
|
ประวัติการแก้ไข 2013-07-19 20:04:03 2013-07-19 20:04:52
|
|
|
|
Date :
2013-07-19 20:03:23 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Final
Code (PHP)
$i=1;
$oldDate="";
while($row_qu=mysql_fetch_array($select_date)){
if($oldDate != "" && $oldDate != $row_qu['Mydate'] )
{
//ถ้าเดือนเปลี่ยนไปแล้ว ให้ขึ้นบรรทัดใหม่ก่อน แล้วค่อยแสดง
echo"</tr><tr>";
echo '<th width="95" class="sfs">'. $row_qu['Mydate'] . '</th>';
}else if(($i % 9) ==0){// ขึ้นแถวไหม่ เมื่อครบ9
//ถ้าครบกำหนด ให้แสดงข้อมูลก่อน แล้วค่อยขึ้นแถวใหม่
echo '<th width="95" class="sfs">'. $row_qu['Mydate'] . '</th>';
echo"</tr><tr>";
}else{
//ถ้ายังไม่ครบจำนวนที่ต้องเปลี่ยนบรรทัดให้แสดงเรื่อยๆ
echo '<th width="95" class="sfs">'. $row_qu['Mydate'] . '</th>';
}
$i++;
$oldDate = $row_qu['Mydate'];
}
นั่งแกะอยู่เกือบชั่วโมง ไม่คาดคิดว่าจะต้องมีการตรวจสอบว่า
1. ให้แสดงข้อมูลก่อน แล้วขึ้นบรรทัดใหม่
2. ขึ้นบรรทัดใหม่ก่อน แล้วค่อยแสดงข้อมูล
3. ถ้ายังไม่ครบกำหนดก็แสดงตามปกติ
|
ประวัติการแก้ไข 2013-07-19 20:53:18
|
|
|
|
Date :
2013-07-19 20:51:15 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมาก ครับพี่ชาย เกือบสมบูรณ์ แล้วคับ เหลือ ตรงส่วน กรอบสีเขียว เท่านั้น ครับ
Code (PHP)
<?php
$select_date=mysql_query("SELECT DISTINCT order_date, count(order_generation) AS V_TOTAL_new1 , SUM(size_new) AS V_TOTAL_new , DATE_FORMAT(order_date,'%Y-%m') AS Mydate , check_status , order_generation AS V_TOTAL2_
FROM `genneration_size`
Group by DATE_FORMAT(order_date,'%Y-%m') DESC , order_generation");
?>
<?
$oldDate="";
$i=1;
while($row_qu=mysql_fetch_array($select_date)){
?>
<?
if($oldDate != "" && $oldDate != $row_qu['Mydate'] )
{
//ถ้าเดือนเปลี่ยนไปแล้ว ให้ขึ้นบรรทัดใหม่ก่อน แล้วค่อยแสดง
echo"</tr><tr>";
echo '<th width="95" class="sfs">'. $row_qu['Mydate'] . '</th>';
}else if(($i % 9) ==0){// ขึ้นแถวไหม่ เมื่อครบ9
//ถ้าครบกำหนด ให้แสดงข้อมูลก่อน แล้วค่อยขึ้นแถวใหม่
echo '<th width="95" class="sfs">'. $row_qu['Mydate'] . '</th>';
echo"</tr><tr>";
}else{
//ถ้ายังไม่ครบจำนวนที่ต้องเปลี่ยนบรรทัดให้แสดงเรื่อยๆ
echo '<th width="95" class="sfs">'. $row_qu['Mydate'] . '</th>';
}
$i++;
$oldDate = $row_qu['Mydate'];
}
?>
|
ประวัติการแก้ไข 2013-07-20 10:28:27
|
|
|
|
Date :
2013-07-20 10:25:13 |
By :
031130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาส่วน else if(($i % 9) ==0) บล็อกนี้ออกไปก็น่าจะใช้ได้ ไม่ต้องให้ขึ้นบรรทัดใหม่ เมื่อครบ 9
ลบบรรทัดที่ 18 - 22 ออกไปครับ
|
ประวัติการแก้ไข 2013-07-20 12:24:18
|
|
|
|
Date :
2013-07-20 12:23:36 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ มาก ๆ ครับ พี่ชาย นี่คือ โค๊ดทั้งหมด ครับ เอาไว้ให้ เผื่อมีใคร ทำแบบผม จะได้เป็นแนวทางครับ เพราะเห็นคนก็ถามเกี่ยวกับแบบนี้ เยอะเหมือนกันคับ ^____^
<?php
$select_date=mysql_query("SELECT DISTINCT order_date, count(order_generation) AS V_TOTAL_new1 , SUM(size_new) AS V_TOTAL_new , DATE_FORMAT(order_date,'%Y-%m') AS Mydate , check_status , order_generation AS V_TOTAL2_
FROM `genneration_size`
Group by DATE_FORMAT(order_date,'%Y-%m') DESC , order_generation");
?>
<?
$oldDate="";
$i=1;
while($row_qu=mysql_fetch_array($select_date)){
?>
<?
if($oldDate != "" && $oldDate != $row_qu['Mydate'] )
{
//ถ้าเดือนเปลี่ยนไปแล้ว ให้ขึ้นบรรทัดใหม่ก่อน แล้วค่อยแสดง
echo"</tr><tr>";
echo '<th width="95" class="sfs">'. $row_qu['Mydate'] . '</th>';
}else{
//ถ้ายังไม่ครบจำนวนที่ต้องเปลี่ยนบรรทัดให้แสดงเรื่อยๆ
echo '<th width="95" class="sfs">'. $row_qu['Mydate'] . '</th>';
}
$i++;
$oldDate = $row_qu['Mydate'];
}
?>
|
|
|
|
|
Date :
2013-07-20 13:15:51 |
By :
031130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|