Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > สอบถามการคิวรีข้อมูล แล้วอยากให้โชว์แถวตารางเท่ากันนะค่ะ รบกวนหน่อยคะพี่



 

สอบถามการคิวรีข้อมูล แล้วอยากให้โชว์แถวตารางเท่ากันนะค่ะ รบกวนหน่อยคะพี่

 



Topic : 114474



โพสกระทู้ ( 151 )
บทความ ( 0 )



สถานะออฟไลน์




อยากให้ while ข้อมูลแต่ละ id ไม่เท่ากัน แต่อยากให้โชว์ตารางออกมาให้เท่ากันนะค่ะ แบบนี้ต้องเขียนยังไงหรอค่ะ

table

ตอนนี้ได้ภาพแบบนี้นะค่ะ อยากให้สรุปมูลค่า กับรวม vat อยู่ในแนวเดียวกันนะค่ะ รบกวนปรึกษาหน่อยค่ะ



Tag : PHP, MySQL, HTML/CSS, JavaScript







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-02-17 13:39:47 By : sangkheb View : 938 Reply : 11
 

 

No. 1



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


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>&nbsp;</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>&nbsp;</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
 


 

No. 2



โพสกระทู้ ( 151 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-02-17 13:57:05
รายละเอียดของการตอบ ::
ที่ทำอยู่มาจาก table เดียวกันนะค่ะ แบบนี้จะต้องเขียนยังไงหรอค่ะ

Code (PHP)
  <?
  	$total=0;
	$query_bid = mysql_query ("SELECT * FROM  bid  WHERE cat_id = '".$arr_bidder["id"]."' and sub_id='".$arr_projcet["id"]."'");
	$i=1;
	while ($arr_bid = mysql_fetch_assoc($query_bid))
	{
	$total += $arr_bid['price'] ;
	if($n<2){
	echo "<td><div align=\"center\" class=\"bottomright\">".$i."</div></TD>";
	}
	?>
    <td class="bottom"><div align="center"><?=$arr_bid["added"];?></div></td>
    <td class="bottomright"><div align="center"><?=$arr_bid["price"];?></div></td> 
  </tr>
 	
   <? 
   
  $i++;
  } 
  ?>



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-17 14:43:17 By : sangkheb
 

 

No. 3



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ถ้าให้โค๊ดมาแค่นี้ ก็อธิบายมาด้วยครับ ว่า $n มันคืออะไร

และข้อมูลด้านขวา มันเอามาจากไหน

input กระปิปกระปอยแบบนี้ ตอบไม่ได้ครับ ที่เขียนให้ดูก็เป็นแค่ตัวอย่างเดาเอาเองทั้งนั้น 55555

เอาตัวเต็มมาดีกว่า จะได้วิเคราะห์ได้ถูก แล้วอาจจะมีแถมคอมเม้นท์ วิธีการเขียนให้เข้าใจง่ายเพิ่มให้ด้วยนะครับ


ประวัติการแก้ไข
2015-02-17 14:55:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-17 14:54:48 By : Chaidhanan
 


 

No. 4



โพสกระทู้ ( 151 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-02-17 14:54:48
รายละเอียดของการตอบ ::

Code (PHP)
<?
  	$n=0;
	$query_bidpro = mysql_query ("SELECT * FROM  bidpro  WHERE bid_id = '".$arr_projcet["id"]."' and status =1");
	while ($arr_bidpro = mysql_fetch_assoc($query_bidpro))
	{
	$arr_bidder=mysql_fetch_array(mysql_query("SELECT * FROM `bidders` WHERE id='".$arr_bidpro["cat_id"]."' and status = 1"));
	$n++;
     
	?>
    <div class="block float">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <?
  if($n<2){
	echo " <td colspan=\"3\" align=\"center\" class=\"bottomrightsss\">".$arr_bidder["name"]."</td>";
	}
	else {
	echo "<td colspan=\"3\" align=\"center\" class=\"bottomrightsssss\">".$arr_bidder["name"]."</td>";
	}
  ?>
    
  </tr>
  <tr>
  <?
  if($n<2){
	echo " <td><div align=\"center\">ลำดับ</div></td>";
	}
  ?>
    <td><div align="center">เวลา</div></td>
    <td><div align="center">มูลค่า</div></td>
  </tr>
  <tr>
  <?
  	$total=0;
	$query_bid = mysql_query ("SELECT * FROM  bid  WHERE cat_id = '".$arr_bidder["id"]."' and sub_id='".$arr_projcet["id"]."'");
	$i=1;
	while ($arr_bid = mysql_fetch_assoc($query_bid))
	{
	$total += $arr_bid['price'] ;
	if($n<2){
	echo "<td><div align=\"center\">".$i."</div></TD>";
	}
	?>
    <td><div align="center"><?=$arr_bid["added"];?></div></td>
    <td ><div align="center"><?=$arr_bid["price"];?></div></td> 
  </tr>
 	
   <? 
   
  $i++;
  } 
  ?>
   <tr>
   <?
   if($n<2){
	echo "<td ><div align=\"center\">สรุปมูลค่า</div></td>";
	}
	?>
    <td><div align="center"></div></td>
    <td><div align="center"><?=$total;?></div></td> 
  </tr>
  <tr>
   <?
   if($n<2){
	echo "<td><div align=\"center\">รวม vat</div></td>";
	}
	?>
    <td><div align="center"></div></td>
    <td><div align="center"><?=$total+($total*7/100);?></div></td> 
  </tr>
 
</table></div>
<? 
  } 
  ?> </td>

</TR>


** $n เพื่อนับค่าคะ ให้เช็คว่าถ้าน้อยกว่า 2 เนี่ยให้โชว์ ลำดับการนับเพียงแค่วนครั้งแรกเท่านั่นค่ะ ค่าที่วนรอบที่ 2 จะไม่ดึงมาโชว์ค่ะ รวมถึง ตรงช่องสรุปมูลค่า และ รวม vat จะโชว์แค่ครั้งเดียวเหมือนกัน

ยังไงรบกวนแนะนำด้วยนะค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-17 15:06:47 By : sangkheb
 


 

No. 5



โพสกระทู้ ( 1,666 )
บทความ ( 0 )



สถานะออฟไลน์


ลองเอา HTML ไปจิจารณาดูนะครับ แล้วศึกษาcss การใช้ style กับ border มันสามารถเขียนแยกไปได้ถึง บนล่างซ้ายขวาเลยครับ


Code (PHP)
<table width="800" border="0" cellpadding="0" cellspacing="0" >
  <tr>
    <td style="border:solid 1px;">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td  style="border:solid 1px;">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td  style="border:solid 1px;">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-17 15:47:42 By : meannerss
 


 

No. 6



โพสกระทู้ ( 151 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : meannerss เมื่อวันที่ 2015-02-17 15:47:42
รายละเอียดของการตอบ ::
ขอบคุณนะค่ะ ^^

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-17 15:49:58 By : sangkheb
 


 

No. 7



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


Code
$query_bidpro = mysql_query ("SELECT * FROM bidpro WHERE bid_id = '".$arr_projcet["id"]."' and status =1"); while ($arr_bidpro = mysql_fetch_assoc($query_bidpro)){ $arr_bidder=mysql_fetch_array(mysql_query("SELECT * FROM `bidders` WHERE id='".$arr_bidpro["cat_id"]."' and status = 1")); $n++;



สีแดง ถ้าแน่ใจว่ามีแค่ record เดียว ก็โอเคครับ แต่ถ้าไม่ ก็ควรใส่ order by เข้าไปด้วย เป็นการกำหนด ความชัดเจนของข้อมูลที่ได้รับ
และ ควรจะมี limit 1 ไว้ด้วย เพื่อความรวดเร็วในการคิวรี่ ไม่ใช่ ให้ส่งมาทั้งหมด ทั้งๆ ที่ต้องการแค่ เรคคอร์ดเดียว


เดี๋ยวมาต่อนะครับ ถ้ายังไม่มีใครมาช่วยตอบ ขอดูหนังแปป หุหุ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-17 18:07:51 By : Chaidhanan
 


 

No. 8



โพสกระทู้ ( 151 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-02-17 18:07:51
รายละเอียดของการตอบ ::
สีแดงเป็นการดึงรายชื่อมาแสดงค่ะ...มีหลายเรคอร์ดค่ะ ต้องเกริ่นก่อนว่าอันนี้เป็นการประมูลค่ะ ผู้ประมูลมีหลายคนค่ะ แต่ตอนออก report สรุป จะดึงมาแสดงเป็นการเสนอราคาแต่ละคน แต่ติดที่ว่าพอทำออกมาแล้วตารางจะสั้นยาวไม่เท่ากัน นะค่ะ

ต้องขอโทษ อาจารย์ Chaidhanan ที่บอกรายละเอียดไม่ครบนะค่ะ T___T

อันนี้ภาพตัวอย่าง report ที่ต้องการค่ะ

report

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-18 09:18:49 By : sangkheb
 


 

No. 9



โพสกระทู้ ( 151 )
บทความ ( 0 )



สถานะออฟไลน์


ยังหาทางไม่ได้เลยค่ะ ช่วยที T____T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-20 10:43:59 By : sangkheb
 


 

No. 10



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


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
 


 

No. 11

Guest


อันที่จริงทำได้หลายวิธีครับ ขอไม่อธิบายแต่จะทำให้ดูเลยดีกว่า
เพราะฉะนั้นขอโค้ดล่าสุดที่ทำอยู่ และช่วย export database มาวางไว้ด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-20 21:38:34 By : ไม่ทราบแหล่งที่มา
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการคิวรีข้อมูล แล้วอยากให้โชว์แถวตารางเท่ากันนะค่ะ รบกวนหน่อยคะพี่
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่