สอบถามการคิวรีข้อมูล แล้วอยากให้โชว์แถวตารางเท่ากันนะค่ะ รบกวนหน่อยคะพี่
Code (PHP)
<?php
$db = new mysqli('host', 'user', 'psw', 'database');
$rs1=$db->query('select * from tb1'); $count_tb1=$rs1->num_rows;
$rs2=$db->query('select * from tb2'. $lm2); $count_tb2=$rs2->num_rows;
?>
<table border=1>
<tr>
<td>
<table border=1>
<tr><td colspan=3>captiion</td></tr>
<?php
$sum1=0; $sum2=0;
while($ro=$rs1->fetch_assoc()):?>
<tr>
<td><?=$ro['id']?></td>
<td><?=$ro['name']?></td>
<td><?=$ro['amount']?></td>
</tr>
<?php
$sum1 += $ro['amount'];
endwhile;
if($count_tb1<$count_tb2){
for($count_tb1; $count_tb1<$count_tb2; $count_tb1++) echo "<tr><td colspan=3> </td></tr>
}
?>
<tr><td colspan=2>Total</td><td><?=$sum1?></td><tr>
</table>
</td>
<td>
<table border=1>
<tr><td colspan=3>captiion</td></tr>
<?php
while($ro=$rs2->fetch_assoc()):?>
<tr>
<td><?=$ro['id']?></td>
<td><?=$ro['name']?></td>
<td><?=$ro['amount']?></td>
</tr>
<?php
$sum2 += $ro['amount'];
endwhile;
if($count_tb2<$count_tb1){
for($count_tb2; $count_tb2<$count_tb1; $count_tb2++) echo "<tr><td colspan=3> </td></tr>
}
?>
<tr><td colspan=2>Total</td><td><?=$sum1?></td><tr>
</table>
</td></tr></table>
ลองดูเป็นตัวอย่างนะครับ และยังไม่ได้ลอง 555
ประวัติการแก้ไข 2015-02-17 13:58:30
Date :
2015-02-17 13:57:05
By :
Chaidhanan
ถ้าให้โค๊ดมาแค่นี้ ก็อธิบายมาด้วยครับ ว่า $n มันคืออะไร
และข้อมูลด้านขวา มันเอามาจากไหน
input กระปิปกระปอยแบบนี้ ตอบไม่ได้ครับ ที่เขียนให้ดูก็เป็นแค่ตัวอย่างเดาเอาเองทั้งนั้น 55555
เอาตัวเต็มมาดีกว่า จะได้วิเคราะห์ได้ถูก แล้วอาจจะมีแถมคอมเม้นท์ วิธีการเขียนให้เข้าใจง่ายเพิ่มให้ด้วยนะครับ
ประวัติการแก้ไข 2015-02-17 14:55:19
Date :
2015-02-17 14:54:48
By :
Chaidhanan
ลองเอา HTML ไปจิจารณาดูนะครับ แล้วศึกษาcss การใช้ style กับ border มันสามารถเขียนแยกไปได้ถึง บนล่างซ้ายขวาเลยครับ
Code (PHP)
<table width="800" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td style="border:solid 1px;"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td style="border:solid 1px;"> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td style="border:solid 1px;"> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
Date :
2015-02-17 15:47:42
By :
meannerss
ยังหาทางไม่ได้เลยค่ะ ช่วยที T____T
Date :
2015-02-20 10:43:59
By :
sangkheb
Code (PHP)
<?php
// ผมไม่รู้ว่าแต่ละตาราง มันคืออะไร เดาเอาก็แล้วกัน
// bidpro หมายถึง project ที่ประมูล เช่น บ้าน รถ
// bidder หมายถึงผู้ประมูล บริษัทต่างๆที่เข้าร่วมประมูล PK=id, FK=pro_id
// bid หมายถึง รายการที่ส่งประมูล PK=id, FK=bidder_id, pro_id
// ถ้าไม่ถูกต้องก็ ประยุกต์เอาก็แล้วกันนะครับ
$db = new mysqli('host', 'user', 'psw', 'database');
$pro_id = $_REQUEST['pro_id']; // กำหนดเอาเองนะครับ เอามาจากไหน
////////////////////////////////////////////////////////////////
/////////////// หาค่า จำนวน บันทัดมากสุด
$sql=<<<SQL
select max( count_bid ) from (
SELECT COUNT(bid.id) count_bid
FROM bidder
LEFT JOIN bid on bid.bidder_id=bidder.id
WHERE bidder.pro_id=$pro_id
GROUP BY bid.id
) as tmp
SQL;
$rs1=$db->query($sql) or die( $sql . "<br>" . $db->error);
$ro1=$rs1->fetch_row(); $mx = $ro1[0];
/////////////////////////////////////////////////////////////
/////////// สร้าง buffer เก็บข้อมูลรายบันทัด ใส่ค่าเริ่มต้น หัวบันทัด
$tr = array();
for($i=0; $i<($mx+4); $i++){
if($i==0) $tr[$i]='<td rowspan=2>ลำดับ</td>'; else
if($i==($mx+2)) $tr[$i]='<td>สรุปมูลค่า</td>'; else
if($i==($mx+3)) $tr[$i]='<td>รวม Vat</td>'; else
if($i>1) $tr[$i]='<td>'.$i.'</td>';
}
/////////////////////////////////////////////////////////////
// เปิดตารางหลัก ผุ้ประมูล เรียงตาม id หรือจะเรียงตาม ชื่อ ก็ได้ เปลี่ยน order by เอาเอง
$sql="SELECT * FROM bidder WHERE pro_id=$pro_id ORDER BY id ";
$rs2=$db->query($sql);
while($ro2=$rs2->fetch_assoc()){
$tr[0] .= '<td colspan=2>'.$ro2['name'].'</td>';
$tr[1] .= '<td>เวลา</td><td>มูลค่า</td>';
////////////////////////////////////////////////////////////////
// คิวรี่ส่วน detail
$sql=<<<SQL
SELECT *
FROM bid
WHERE bidder_id=$ro2[id] and pro_id=$pro_id
ORDER BY bid_time
SQL;
$rs3=$db->query( $sql );
$c = 0; // กำหนด ค่าเริ่มต้นตัวนับ
$s = 0; // กำหนด ค่าเริ่มต้น sum
while( $ro3=$rs3->fetch_assoc()){
$tr[2+$c] .= "<td>$ro3[bid_time]</td><td>$ro3[amount]</td>";
$s+=floatval($ro3['amount']);
$c++;
}
for($c; $c < $mx; $c++){
$tr[2+$c] .= "<td></td><td></td>";
}
$tr[$mx+2] .= "<td></td><td>$s</td>"; // แสดงผลรวม
$tr[$mx+3] .= "<td></td><td>".($s * 1.07)."</td>"; // แสดงผลรวม + vat
}
///////////////////////////////////////////////////
// นำ buffer มาแสดง
?>
<table>
<?php for($i=0; $i<($mx + 4); $i++):?>
<tr><?=$tr[$i]?></tr>
<?php endfor; ?>
</table>
ไม่ได้มีการทดสอบอะไรทั้งสิ้นนะครับ ไม่มี database ทดสอบ ( บวก ขี้เกียจสร้าง 555)
ผิดผลาดประการใดก็ ด่าฟ้าด่าฝนก็แล้วกันนะครับ 5555
Date :
2015-02-20 12:10:49
By :
Chaidhanan
อันที่จริงทำได้หลายวิธีครับ ขอไม่อธิบายแต่จะทำให้ดูเลยดีกว่า
เพราะฉะนั้นขอโค้ดล่าสุดที่ทำอยู่ และช่วย export database มาวางไว้ด้วยครับ
Date :
2015-02-20 21:38:34
By :
ไม่ทราบแหล่งที่มา
Load balance : Server 04