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 > จะแบ่งหน้าการแสดงผลกับตารางที่ดึงข้อมูลแบบ ตาราง 2 มิติ ทำยังไงค่ะ ขอคำแนะนำหน่อยคะ



 

จะแบ่งหน้าการแสดงผลกับตารางที่ดึงข้อมูลแบบ ตาราง 2 มิติ ทำยังไงค่ะ ขอคำแนะนำหน่อยคะ

 



Topic : 081624



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



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




ขอคำแนะนำจากผู้รู้หน่อยคะ
คือว่า จากรูปภาพ ต้องการให้แบ่งหน้าแสดงข้อมูล หน้าหนึ่งให้แสดงผลเพียง 5 คอลัมน์ พอคลิกหน้าจัดไปก็แสดงผล คอลัมน์ที่หลือถัดไป 5 คอลัมอีกอะ (ตารางที่ดึงขอ้มูลมาแสดงตอนนี้ไป เป็นการวนลูปดึงข้อมูลแสดงผลแบบ 2 มิติ คะ)
ทำต่อไปไม่ถูกแล้วคะ ขอคำแนะนำหน่อยคะ

รูปแสดงตารางแบบ 2 มิติ

โค้ดดังต่อไปนี้คะCode (PHP)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>ShowResult</title>
<style type="text/css">
<!--
.style2 {font-size: 14px; }
.style10 {
	font-size: 18px;
	font-weight: bold;
}

@media print 
{ 
#non-printable { display: none; } 
#printable { display: block; } 
#head,#foot { display:none}
#ad{ display:none;}
#leftbar{ display:none;}
#contentarea{ width:100%;}
} 
@page { size 8.5in 11in; margin: 2cm }
.style13 {font-size: 14; font-weight: bold; }
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
.style21 {font-size: 12}
.style24 {
	font-size: 10px;
	font-weight: bold;
}
.style25 {font-size: 10px}
-->
</style>
</head>

<body>
<?include ('function_inc.php');?>
<?
$slevel=$_SESSION['slevel'];
include('connect.php');
$reqno=$_GET['req_no'];
$labcode=$_GET['lab_code'];
$id = $_GET['hn'];
$string=$id;
	$x=strlen($string);
	if($x<7)
		 {
			 $y=7-$x;
		 }
		$z=str_repeat(" ",$y).$string;

 $sql="SELECT P.hn,rtrim(T.titleName) +' ' +rtrim(P.firstName) +' ' +rtrim(P.lastName) as fullname,
P.addr1,P.moo,TB.tambonName,R.regionName,A.areaName,P.sex,P.birthDay
from PATIENT P(NOLOCK)
LEFT JOIN PTITLE T(NOLOCK) ON P.titleCode = T.titleCode
left join AREA A(NOLOCK)on A.areaCode = P.areaCode
left join REGION R (NOLOCK)on R.regionCode = P.regionCode
left join Tambon TB (NOLOCK)on TB.tambonCode = P.regionCode+P.tambonCode
where P.hn='$z' ";
	$result = mssql_query($sql);
	$row_detail = mssql_fetch_array($result);
	
	$fullName = $row_detail['fullname'];
	$sex = $row_detail['sex'];
	$hn = $row_detail['hn'];
   	$add = $row_detail['addr1'];
	$moo = $row_detail['moo'];
	$tambon = $row_detail['tambonName'];
	$region = $row_detail['regionName'];
	$area = $row_detail['areaName'];
	$birthday = $row_detail['birthDay'];
?>
<div id="non-printable"> 
<input type='button' value='Print Result' onclick ='window.print()'>
</div> 
<table width="80%" border="0" align="center" cellpadding="2" cellspacing="2" style="border: 1px dashed #808080">
  <tr>
    <td width="1%">&nbsp;</td>
    <td colspan="7">
	<div align="right"><span class="style10">
                    <? if ($_GET['lab_type']=='H'){
	echo "งานโลหิตวิทยา";
	echo " &nbsp;(H)";
	}
	else if ($_GET['lab_type']=='C'){
	echo "งานเคมีคลินิก";
	echo "&nbsp;(C)";
	}
	else if ($_GET['lab_type']=='U'){
	echo "Microscopy";
	echo "&nbsp;(U)";
	}
	else if ($_GET['lab_type']=='O'){
	echo "Out lAB";
	echo "&nbsp;(O)";
	}
	else if ($_GET['lab_type']=='I'){
	echo "งานภูมิคุ้มกันวิทยา";
	echo "&nbsp;(I)";
	}
	else if ($_GET['lab_type']=='M'){
	echo "งานจุลชีววิทยาคลินิก";
	echo "&nbsp;(M)";
	}
	else {
	echo "Blood bank";
	echo "&nbsp;(B)";
	}?>
                    </span></div></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="7"><div align="right"><strong>โรงพยาบาล สุราษฎร์ธานี</strong></div></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td width="20%"><div align="right" class="style13 style2">ชื่อ-สกุล :</div></td>
    <td width="21%"><span class="style13 style2"><? echo "$fullName";?></span></td>
    <td width="9%"><div align="right" class="style13 style2">HN :</div></td>
    <td width="11%"><span class="style13 style2"><? echo "$hn";?></span></td>
    <td width="6%"><div align="right"><span class="style2">เพศ :</span></div></td>
    <td width="6%"><span class="style2"><? echo "$sex";?></span></td>
    <td width="21%">&nbsp;</td>
    <td width="5%">&nbsp;</td>
  </tr>
  <tr>
    <td><span class="style21"></span></td>
    <td><div align="right" class="style21">ที่อยู่</div></td>
    <td colspan="7"><span class="style21"><? echo "$add";?>หมู่  <? echo "$moo";?>ต.<? echo "$tambon"; ?> อ. <? echo "$region"; ?> จ. <? echo "$area"; ?> </span></td>
  </tr>
</table>
    <?
  //select ข้อมูลแสดงผลเป็นหัวตาราง
   $sqls =" SELECT LD.req_no,H.req_date
FROM (((((Labreq_h H(NOLOCK)
          INNER JOIN PATIENT P(NOLOCK) ON (H.hn = P.hn) 
          LEFT JOIN OPD_H O(NOLOCK) ON (H.hn = O.hn) AND(H.reg_flag = O.regNo)))
          left join DEPT DT (NOLOCK) on (H.reqFrom = DT.deptCode)
          LEFT JOIN PTITLE T(NOLOCK) ON P.titleCode = T.titleCode)
          LEFT JOIN DOCC D(NOLOCK) ON H.docCode = D.docCode) 
          LEFT JOIN LabUnit U(NOLOCK) ON (H.labUnit = U.labUnit) )
          Left join Ipd_h I on H.hn =I.hn and H.reg_flag=I.regist_flag
          Left join Ward W on H.reqFrom = W.ward_id
          left join Bill_h BH on H.hn=BH.hn and H.reg_flag=BH.regNo
          left join Paytype PT on BH.useDrg = PT.pay_typecode
          left join Labres_d LD on LD.req_no=H.req_no
          LEFT JOIN Labre_s S(NOLOCK) ON ((S.lab_code = LD.lab_code)  And (S.res_run_no = LD.res_item))
          LEFT JOIN lres_d2 R2(NOLOCK) ON ((LD.req_no=R2.req_no)AND(LD.lab_code=R2.labcode)
           AND(LD.organism=R2.organism) AND (LD.res_item = R2.res_item))
          left join Labreq_d RD on (RD.req_no=H.req_no) and (RD.lab_code=S.lab_code) and (RD.lab_type=S.labType ) 
          LEFT JOIN Lab L on   (S.lab_code=L.labCode)  and (L.labType=S.labType)
          LEFT JOIN Labspcm SP on (SP.specimenID=RD.specimenID) and (SP.lab_type=RD.lab_type)
where H.hn='$z'
and LD.lab_code='$labcode'
and (RD.reverse_flag='' or RD.reverse_flag is Null)
group by H.req_date,LD.req_no
order by LD.req_no desc ";
$rsItem = mssql_query($sqls);
/// เริ่มแบ่งหน้า
$Num_Rows = mssql_num_rows($rsItem);
$Per_Page = 5;   // Per Page
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
	$Page=1;
}

$Prev_Page = $Page-1;
$Next_Page = $Page+1;

$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
	$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
	$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
	$Num_Pages =($Num_Rows/$Per_Page)+1;
	$Num_Pages = (int)$Num_Pages;
}
$Page_End = $Per_Page * $Page;
IF ($Page_End > $Num_Rows)
{
	$Page_End = $Num_Rows;
}
///////////////////////////////
$item_id = array();
$item = array();
$i = 0;
while($value = mssql_fetch_assoc($rsItem)){
$item_id[$i] = $value['req_no'];		//เก็บ ID สำหรับกำหนดเงื่อนไขในการวนลูปแนวกว้าง
		$item[$i] = $value ['req_date'];   //เก็บตัวแปร item สำหรับแสดงผลหัว column
		$i ++;
	}
mssql_free_result($rsItem); //สั่งคืนค่าหน่วยความจำเพราะ $rsTopic ไม่มีการใช้งานอีกแล้ว

//select  ข้อมูลด้านข้าง คอลัมน์แรก
$sql =" select distinct(LD.result_name)as resultName,L.sequence,S.printorder,LD.res_item
FROM (((((Labreq_h H(NOLOCK)
          INNER JOIN PATIENT P(NOLOCK) ON (H.hn = P.hn) 
          LEFT JOIN OPD_H O(NOLOCK) ON (H.hn = O.hn) AND(H.reg_flag = O.regNo)))
          left join DEPT DT (NOLOCK) on (H.reqFrom = DT.deptCode)
          LEFT JOIN PTITLE T(NOLOCK) ON P.titleCode = T.titleCode)
          LEFT JOIN DOCC D(NOLOCK) ON H.docCode = D.docCode) 
          LEFT JOIN LabUnit U(NOLOCK) ON (H.labUnit = U.labUnit) )
          Left join Ipd_h I on H.hn =I.hn and H.reg_flag=I.regist_flag
          Left join Ward W on H.reqFrom = W.ward_id
          left join Bill_h BH on H.hn=BH.hn and H.reg_flag=BH.regNo
          left join Paytype PT on BH.useDrg = PT.pay_typecode
          left join Labres_d LD on LD.req_no=H.req_no
          LEFT JOIN Labre_s S(NOLOCK) ON ((S.lab_code = LD.lab_code)  And (S.res_run_no = LD.res_item))
          LEFT JOIN lres_d2 R2(NOLOCK) ON ((LD.req_no=R2.req_no)AND(LD.lab_code=R2.labcode)
           AND(LD.organism=R2.organism) AND (LD.res_item = R2.res_item))
          left join Labreq_d RD on (RD.req_no=H.req_no) and (RD.lab_code=S.lab_code) and (RD.lab_type=S.labType ) 
          LEFT JOIN Lab L on   (S.lab_code=L.labCode)  and (L.labType=S.labType)
          LEFT JOIN Labspcm SP on (SP.specimenID=RD.specimenID) and (SP.lab_type=RD.lab_type)
  where H.hn='$z'
  and LD.lab_code='$labcode'
and (RD.reverse_flag='' or RD.reverse_flag is Null)
group by LD.result_name,L.sequence,S.printorder,LD.res_item
order by L.sequence,S.printorder";
$rsValue = mssql_query($sql);
$num_rows = mssql_num_rows($rsValue);// นับจำนวนแถวว่ามีข้อมูลหรือไม่
?>
<?
if($num_rows>0){//ถ้ามีก็ให้แสดงผลตาราง
?>

<table width="80%" border="0" align="center" cellpadding="1" cellspacing="1" bordercolor="#99CCFF" style="border: 1px dashed #808080">
  <tr bgcolor="#FFCC99">
    <td align="center"><span class="style24">LabName</span></td>
      
 <?
for($i=0;$i<count($item_id);$i++){
?>

    <td align="center"><span class="style24">
    <? echo showdate($item[$i]);?>
    </span></td>
 <?
}
?>
  <? 
for($ii=$Page_Start;$ii<$Page_End;$ii++)
{
?>

  </tr>
  <?
  	while($ListValue = mssql_fetch_assoc($rsValue)){//วนลูปแสดงผลข้อมูลมิติที่ 1 ตามแนวตั้ง /แถว
  ?>

  
  <tr bgcolor="#FFCCCC">
    <td align="left"><span class="style25">&nbsp;
      <?=$ListValue['resultName']//แสดงผลชื่อพื้ที่?>
    </span></td>
  <?
	/*วนลูปแสดงข้อมูลมิติที่ 2ตามแนวขวาง / คอลัมส์ */
	for($i=0;$i<count($item_id);$i++){  //วนลูปให้เท่ากับจำนวน item
	$sql = "SELECT RD.lab_name,H.req_date,LD.lab_code,LD.result_name,LD.real_res,LD.low_normal,LD.high_normal
,LD.resNormal,S.printorder,LD.res_item,H.req_no
FROM (((((Labreq_h H(NOLOCK)
          INNER JOIN PATIENT P(NOLOCK) ON (H.hn = P.hn) 
          LEFT JOIN OPD_H O(NOLOCK) ON (H.hn = O.hn) AND(H.reg_flag = O.regNo)))
          left join DEPT DT (NOLOCK) on (H.reqFrom = DT.deptCode)
          LEFT JOIN PTITLE T(NOLOCK) ON P.titleCode = T.titleCode)
          LEFT JOIN DOCC D(NOLOCK) ON H.docCode = D.docCode) 
          LEFT JOIN LabUnit U(NOLOCK) ON (H.labUnit = U.labUnit) )
          Left join Ipd_h I on H.hn =I.hn and H.reg_flag=I.regist_flag
          Left join Ward W on H.reqFrom = W.ward_id
          left join Bill_h BH on H.hn=BH.hn and H.reg_flag=BH.regNo
          left join Paytype PT on BH.useDrg = PT.pay_typecode
          left join Labres_d LD on LD.req_no=H.req_no
          LEFT JOIN Labre_s S(NOLOCK) ON ((S.lab_code = LD.lab_code)  And (S.res_run_no = LD.res_item))
          LEFT JOIN lres_d2 R2(NOLOCK) ON ((LD.req_no=R2.req_no)AND(LD.lab_code=R2.labcode)
           AND(LD.organism=R2.organism) AND (LD.res_item = R2.res_item))
          left join Labreq_d RD on (RD.req_no=H.req_no) and (RD.lab_code=S.lab_code) and (RD.lab_type=S.labType ) 
          LEFT JOIN Lab L on   (S.lab_code=L.labCode)  and (L.labType=S.labType)
          LEFT JOIN Labspcm SP on (SP.specimenID=RD.specimenID) and (SP.lab_type=RD.lab_type)
where H.hn='$z'
and LD.lab_code='$labcode'
and LD.res_item={$ListValue['res_item']}
and H.req_no={$item_id[$i]}
and (RD.reverse_flag='' or RD.reverse_flag is Null)
order by L.sequence,S.lab_code,S.printorder,H.req_no desc";
$rsColValue = mssql_query($sql);
$ColValue = mssql_fetch_assoc($rsColValue); //แน่ใจว่าในแต่ละเซลมีค่าเดียว ไม่ต้องวนลูปทำ mysql_fetch_assoc  เพราะถึงแม้วนลูปค่าที่ได้ก็จะมีค่าเดียวเเหมือนกัน
?>
    <td align="center"><span class="style25">
   <?
  if ($slevel<>"9")
  {
      if (( $ColValue['lab_code'] =="36350 " )or($ColValue['lab_code'] =="36351 " )or($ColValue['lab_code'] =="36354 " )){
      echo "******";
       }
       else {
   echo ($ColValue['real_res']);
  }
}
else {
   echo ($ColValue['real_res']);
}
  ?>
      
      
        <? if ( $ColValue['resNormal']=="N"){
	echo " &nbsp;**";
		}
	  else {
	 echo " ";
   }
?>
    </span></td>
<?
	mssql_free_result($rsColValue); //คืนค่าเมื่อไม่ได้ใช้แล้ว
	}//end for
}//end while
?>
  </tr>
  <?
}
?>

</table>
<?
}
else{
	echo "<p align=\"center\"><strong>ไม่มีข้อมูล</strong></p>";
}
?>

<? // แสดง เลขคลิกหน้าถัดไป ?>

<br>
Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :

<?
if($Prev_Page)
{
echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page&hn=$hn&lab_code=$labcode&lab_type=$lab_type'><< Back</a> ";
}

for($ii=1; $ii<=$Num_Pages; $ii++){
	if($ii != $Page)
	{
echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$ii&hn=$hn&lab_code=$labcode&lab_type=$lab_type'>$ii</a> ]";
	}
	else
	{
		echo "<b> $ii </b>";
	}
}
if($Page!=$Num_Pages)
{
echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page&hn=$hn&lab_code=$labcode&lab_type=$lab_type'>Next>></a> ";
}
?>

<?
	mssql_free_result($rsValue); //คืนค่าหน่วยความจำ
	mssql_close($connect ); //ปิดการติดต่อฐานข้อมูล
?>
</body>
</html>



^__^ ยาวไปหน่อย



Tag : PHP, Ms SQL Server 2005, CakePHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-07-27 12:58:09 By : katae_kapolo View : 4654 Reply : 4
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

อยากช่วยน่ะครับ แต่ code เยอะเกิน ดูไม่ไหวครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-28 06:34:09 By : mr.win
 


 

No. 2



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



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


คิคิ ...... ^__^ งั้นรบกวนถามใหม่ค่ะ
จากภาพ คะ

แสดงภาพตาราง 2 มิติ

โค้ดดังนี้คะ
Code (PHP)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
</head>

<body>
<?
$host = "localhost"; //ชื่อ database server
$user = "root"; //ชื่อผู้ใช้ databse ที่มีสิทธิ์
$pass = "123456"; //รหัสผ่าน
$dbase = "test";	 //ชื่อฐานข้อมูลที่จะใช้

$link = mysql_connect($host,$user,$pass) or die("Connect error : ".mysql_error()); //ติดต่อ database
mysql_select_db($dbase); //เลือกฐานข้อมูลที่จะใช้
?>

<? $sql = "SELECT type_id, type_name FROM tb_type ORDER BY type_id"; //selec ข้อมูลสำหรับแสดงผลเป็นหัวตาราง
$rsItem = mysql_query($sql) or die("Select error : ".mysql_error()); //สร้าง result set
$item_id = array();
$item = array();
$i = 0;

while($value = mysql_fetch_assoc($rsItem)){/*วนลูปดึงข้อมูลเก็บเข้า array อาจจะใช้ mysql_fetch_array ก็ได้การใช้งานเหมือนกันแต่ 
mysql_fetch_array จะกว้างกว่าตรงที่สามารถระบุได้ทั้งตำแหน่งและชื่อของฟิลด์*/
$item_id[$i] = $value['type_id'];	 //เก็บ id สำหรับกำหนดเงื่อนไขในการวนลูปแนวกว้าง
$item[$i] = $value['type_name']; //เก็บตัวแปร item สำหรับแสดงผลหัว column
$i ++;
}
mysql_free_result($rsItem); //สั่งคืนค่าหน่วยความจำเพราะ $rsTopic ไม่มีการใช้งานอีกแล้ว


$sql = "SELECT DISTINCT(tb_value.id),name FROM tb_value RIGHT JOIN tb_area ON tb_area.id = tb_value.id ORDER BY tb_value.id";
$rsValue = mysql_query($sql) or die("Select error : ".mysql_error());// SELECT ข้อมูล id,name จากตาราง tb_value โดยมีการตรวจสอบกับตาราง tb_area ซึ่งเป็น lookup table
$num_rows = mysql_num_rows($rsValue);//นับจำนวนแถวว่ามีข้อมูลหรือไม่
?>

<?
if($num_rows>0){//ถ้ามีก็ให้แสดงผลตารางข้อมูล
?>

<table width="400" border="0" bgcolor="#000000">
<tr bgcolor="#FFFFFF">
<td width="169" align="center"><strong>พื้นที่</strong></td>
<?
for($i=0;$i<count($item_id);$i++){
?>
<td width="221" align="center"><strong><?=$item[$i]//แสดงผลหัวคอลัมน์?></strong></td>
<?
}
?>

</tr>
<?
while($ListValue = mysql_fetch_assoc($rsValue)){//วนลูปแสดงผลข้อมูลมิติที่ 1 ตามแนวตั้ง /แถว
?>
<tr bgcolor="#FFFFFF">
<td align="left">&nbsp;<?=$ListValue['name']//แสดงผลชื่อพื้นที่?></td>

<?
/*วนลูปแสดงผลข้อมูลมิติที่ 2 ตามแนวขวาง /คอลัมน์*/
for($i=0;$i<count($item_id);$i++){ //วนลูปให้เท่ากับจำนวน item
$sql = "SELECT number FROM tb_value WHERE id={$ListValue['id']} AND type_id={$item_id[$i]}";//วนลูปหาค่าในแต่ละเชลล์ของตารางตามค่าในคีย์หลักของแถว และ คอลัมน์
$rsColValue = mysql_query($sql) or die("Select error : ".mysql_error());
$ColValue = mysql_fetch_assoc($rsColValue); //แน่ใจว่าในแต่ละเชลล์มีค่าเดียว จึงไม่ต้อวนลูป ทำ mysql_fetch_assoc เพราะถึงแม้วนลูปค่าที่ได้ก็จะมีแค่ค่าเดียวเหมือนกัน
?>
<td align="center"><?=number_format($ColValue['number'])?></td>
<?
mysql_free_result($rsColValue); //คืนค่าเมื่อไม่ได้ใช้แล้ว
              }//end for 
        }//end while 
mysql_free_result($rsValue); //คืนค่าหน่วยความจำ
?>
</tr>
</table>

<?
     }
          else{
         echo "<p align=\"center\"><strong>ไม่มีข้อมูล</strong></p>";
    }
?>
<?
         mysql_close($link); //ปิดการติดต่อฐานข้อมูล
?>
</body>
</html>
	


ปัญหาคือว่า ต้องการแบ่งหน้าการแสดงผลเหล่านี้ค่ะ ให้หนึ่งหน้าแสดงหน้าละ 3 คอลัมน์(คอลัมน์ชื่อของผลไม) คะ พอคลิกหน้าถัดไปก้แสดงข้อมูลคอลัมที่เหลือค่ะ


ประวัติการแก้ไข
2012-07-31 10:33:14
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-31 10:28:53 By : katae_kapolo
 

 

No. 3



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



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


ไม่รู้ใช่แบบที่ต้องการหรือเปล่า ลองเอาไปประยุกต์ดูนะครับ

Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jquery show hide column</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
 $(function(){
   var tb = $('#column_hidable');
   var cbp = $('#checkbox_panel');
   tb.find('tr:first > td').each(function(){
     var cb = $('<input type="checkbox" checked="checked" />').click(function(){
      var cbidx = cbp.find(':checkbox').index($(this));
      tb.find('tr').each(function(){
       $(this).find('td').eq(cbidx).toggle();
      });
     });
     cb.appendTo(cbp).after($(this).text()+'<br'+'/>');
   });
 });
</script>
</head>
 
<body>
 
 <?php
     $cols = array("Field 1","Field 2","Field 3","Field 4","Field 5");
 ?>
    <div id="checkbox_panel"></div>
    <table border="1" cellspacing="0" cellpadding="5" id="column_hidable">
      <tr bgcolor="#CC99FF">
        <?php foreach($cols as $col_name):?>
            <td><?php echo $col_name;?></td>
        <?php endforeach;?>
      </tr>
      <?php $i=0; while($i++<5):?>
      <tr>
        <?php foreach($cols as $col_name):?>
            <td><?php echo $col_name;?></td>
        <?php endforeach;?>
      </tr>
      <?php endwhile;?>
    </table>
 
</body>
</html>


credit http://web-programming-bookmark.blogspot.com/2010/11/jquery-showhide-column-checkbox.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-31 15:09:59 By : maxairzoom
 


 

No. 4



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



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


แบ่งหน้า1

แบ่งหน้า2

ได้แล้วคะ ตามโค้ดเลย ^^

Code (PHP)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
</head>

<body>
<?
$host = "localhost"; //ชื่อ database server
$user = "root"; //ชื่อผู้ใช้ databse ที่มีสิทธิ์
$pass = "123456"; //รหัสผ่าน
$dbase = "test";	 //ชื่อฐานข้อมูลที่จะใช้

$link = mysql_connect($host,$user,$pass) or die("Connect error : ".mysql_error()); //ติดต่อ database
mysql_select_db($dbase); //เลือกฐานข้อมูลที่จะใช้

$sql = "SELECT type_id, type_name FROM tb_type ORDER BY type_id "; //selec ข้อมูลสำหรับแสดงผลเป็นหัวตาราง
$rsItem_e = mysql_query($sql) or die("Select error : ".mysql_error()); //สร้าง result set
$Num_Rows = mysql_num_rows($rsItem_e);
?>
<?  //// เริ่มกำหนดการแสดงหน้า
$Per_Page = 3;   // Per Page
		$Page = $_GET["Page"];
		if(!$_GET["Page"])
		{
			$Page=1;
		}
		$Prev_Page = $Page-1;
		$Next_Page = $Page+1;
		$Page_Start = (($Per_Page*$Page)-$Per_Page);
		if($Num_Rows<=$Per_Page)
		{
			$Num_Pages =1;
		}
		else if(($Num_Rows % $Per_Page)==0)
		{
			$Num_Pages =($Num_Rows/$Per_Page) ;
		}
		else
		{
			$Num_Pages =($Num_Rows/$Per_Page)+1;
			$Num_Pages = (int)$Num_Pages;
		}
?>		

<? $sql = "SELECT type_id, type_name FROM tb_type ORDER BY type_id LIMIT $Page_Start , $Per_Page"; //selec ข้อมูลสำหรับแสดงผลเป็นหัวตาราง
$rsItem = mysql_query($sql) or die("Select error : ".mysql_error()); //สร้าง result set
$item_id = array();
$item = array();
$i = 0;

while($value = mysql_fetch_assoc($rsItem)){/*วนลูปดึงข้อมูลเก็บเข้า array อาจจะใช้ mysql_fetch_array ก็ได้การใช้งานเหมือนกันแต่ 
mysql_fetch_array จะกว้างกว่าตรงที่สามารถระบุได้ทั้งตำแหน่งและชื่อของฟิลด์*/
$item_id[$i] = $value['type_id'];	 //เก็บ id สำหรับกำหนดเงื่อนไขในการวนลูปแนวกว้าง
$item[$i] = $value['type_name']; //เก็บตัวแปร item สำหรับแสดงผลหัว column
$i ++;
}
mysql_free_result($rsItem); //สั่งคืนค่าหน่วยความจำเพราะ $rsTopic ไม่มีการใช้งานอีกแล้ว


$sql = "SELECT DISTINCT(tb_value.id),name FROM tb_value RIGHT JOIN tb_area ON tb_area.id = tb_value.id ORDER BY tb_value.id";
$rsValue = mysql_query($sql) or die("Select error : ".mysql_error());// SELECT ข้อมูล id,name จากตาราง tb_value โดยมีการตรวจสอบกับตาราง tb_area ซึ่งเป็น lookup table
$num_rows = mysql_num_rows($rsValue);//นับจำนวนแถวว่ามีข้อมูลหรือไม่
?>

<?
if($num_rows>0){//ถ้ามีก็ให้แสดงผลตารางข้อมูล
?>

<table width="400" border="0" bgcolor="#000000">
<tr bgcolor="#FFFFFF">
<td width="169" align="center"><strong>พื้นที่</strong></td>
<?
for($i=0;$i<count($item_id);$i++){
?>
<td width="221" align="center"><strong><?=$item[$i]//แสดงผลหัวคอลัมน์?></strong></td>
<?
}
?>

</tr>
<?
while($ListValue = mysql_fetch_assoc($rsValue)){//วนลูปแสดงผลข้อมูลมิติที่ 1 ตามแนวตั้ง /แถว
?>
<tr bgcolor="#FFFFFF">
<td align="left">&nbsp;<?=$ListValue['name']//แสดงผลชื่อพื้นที่?></td>

<?
/*วนลูปแสดงผลข้อมูลมิติที่ 2 ตามแนวขวาง /คอลัมน์*/
for($i=0;$i<count($item_id);$i++){ //วนลูปให้เท่ากับจำนวน item
$sql = "SELECT number FROM tb_value WHERE id={$ListValue['id']} AND type_id={$item_id[$i]}";//วนลูปหาค่าในแต่ละเชลล์ของตารางตามค่าในคีย์หลักของแถว และ คอลัมน์
$rsColValue = mysql_query($sql) or die("Select error : ".mysql_error());
$ColValue = mysql_fetch_assoc($rsColValue); //แน่ใจว่าในแต่ละเชลล์มีค่าเดียว จึงไม่ต้อวนลูป ทำ mysql_fetch_assoc เพราะถึงแม้วนลูปค่าที่ได้ก็จะมีแค่ค่าเดียวเหมือนกัน
?>
<td align="center"><?=number_format($ColValue['number'])?></td>
<?
mysql_free_result($rsColValue); //คืนค่าเมื่อไม่ได้ใช้แล้ว
              }//end for 
        }//end while 
mysql_free_result($rsValue); //คืนค่าหน่วยความจำ
?>
</tr>
</table>

<?
     }
          else{
         echo "<p align=\"center\"><strong>ไม่มีข้อมูล</strong></p>";
    }
?>

<? /// แสดงเลขคลิหน้าถัดไป?>
<br>
		Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :
		<?
		if($Prev_Page)
		{
			echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
		}

		for($ii=1; $ii<=$Num_Pages; $ii++){
			if($ii != $Page)
			{
				echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$ii'>$ii</a> ]";
			}
			else
			{
				echo "<b> $ii </b>";
			}
		}
		if($Page!=$Num_Pages)
		{
			echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> ";
		}
		?>


<?
         mysql_close($link); //ปิดการติดต่อฐานข้อมูล
?>
</body>
</html>
	


ทดสอบใช้กับ MySQL ได้ตรงตามความต้องการ ถูกใจม๊ากคะ
ถ้าฐานข้อมูลเป็น MSSQL จะทำยังไงน้อ ............ ขอคำแนะนำหน่อยคะ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-31 20:37:17 By : katae_kapolo
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : จะแบ่งหน้าการแสดงผลกับตารางที่ดึงข้อมูลแบบ ตาราง 2 มิติ ทำยังไงค่ะ ขอคำแนะนำหน่อยคะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่