เรื่องจะแบ่งหน้าแบบ 3 แถว 3 คอลัมภ์อะค่ะ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา เรื่องจะแบ่งหน้าแบบ 3 แถว 3 คอลัมภ์อะค่ะ

เรื่องจะแบ่งหน้าแบบ 3 แถว 3 คอลัมภ์อะค่ะ
คือเราจะแบ่งเพจแบบ 3 แถว 3 คอลัมภ์อะค่ะ
แบบนี้อะค่ะ
1  2  3
4  5  6
7  8  9 
แล้ว 10 ไปอยู่หน้าที่ 2 
เราเคยสอบถามคนอื่นไปครั้งหนึ่งเค้าก็ให้โค้ดจัวอย่างเรามา แล้วเราก็มานั่งแก้เอง จนตอนนี้เราก็ยังแก้ไม่ได้ 
คือเราไม่ได้โค้ดจริงๆค่ะ แต่ต้องทำโปรเจคส่ง ขอร้องช่วยหน่อยนะคะ 

<?php
 
  $objConnect = mysql_connect("localhost","root","") or die("Error Connect to Database");
  $objDB = mysql_select_db("deethaworn");
  $strSQL = "SELECT * FROM product";
  $objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]"); 
  $Num_Rows = mysql_num_rows($objQuery);

    $Per_Page = 5;   // Per Page
    $Page = isset($_GET['Page']) ? $_GET['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;
    }

    $strSQL .=" order  by id_product DESC LIMIT $Page_Start , $Per_Page";
    $objQuery  = mysql_query($strSQL);  
?>

<?php
                $objConnect = mysql_connect("localhost","root","") or die(mysql_error());
                $objDB = mysql_select_db("deethaworn");
                $strSQL = "SELECT * FROM product";
                $objQuery = mysql_query($strSQL);
                echo"<table border="0"  width="600" height="300"><tr>";
                $intRows = 0;
                while($objResult = mysql_fetch_array($objQuery))
                {
                  echo "<td>"; 
                  $intRows++;
              ?>
                  <center>
                   <img src="adminproduct/<?php echo $objResult["pic"];?>" width="150" height="150"><br>
                    <p5><?php echo $objResult["product"];?></p5>
                    <br>
                    <p6><?php echo $objResult["price"];?> บาท</p6>
                    <br>
                    <button type="button"><a href="non-productdetial.php?ProductID=<?php echo $objResult["id_product"];?>">ดูรายละเอียดสินค้า</a></button>
                    <br>
                  </center>
              <?php
                  echo"</td>";
                  if(($intRows)%3==0)
                  {
                    echo"</tr>";
                  }
                }
                echo"</tr></table>";
              ?>
      </div> 
      Total <?php echo $Num_Rows;?> Record : <?php echo $Num_Pages;?> Page :
    <?php
    if($Prev_Page)
    {
      echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
    }

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

      <?php mysql_close($objConnect);?>


Yaowalak Prasertsom 08-03-2016 03:42:31

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ลองประยุกต์จากตัวอย่างนี้เป็นแนวทาง

<?php   
// ทำการเชิ่อมต่อฐานข้อมูล   
mysql_connect("localhost","root","") or die("error".mysql_error());   
mysql_select_db("test") or  die ('Cannot use Database : ' . mysql_error());;    
mysql_set_charset("utf8");
?> 
<?php
// ฟังก์ชั่นสำหรับการแบ่งหน้า NEW MODIFY
function page_navi($before_p,$plus_p,$total,$total_p,$chk_page){      
    global $urlquery_str;   
    $pPrev=$chk_page-1;   
    $pPrev=($pPrev>=0)?$pPrev:0;   
    $pNext=$chk_page+1;   
    $pNext=($pNext>=$total_p)?$total_p-1:$pNext;        
    $lt_page=$total_p-4;   
    if($chk_page>0){     
        echo "<a  href='$urlquery_str"."pages=".intval($pPrev+1)."' class='naviPN'>Prev</a>";   
    }   
    if($total_p>=11){   
        if($chk_page>=4){   
            echo "<a $nClass href='$urlquery_str"."pages=1'>1</a><a class='SpaceC'>. . .</a>";      
        }   
        if($chk_page<4){   
            for($i=0;$i<$total_p;$i++){     
                $nClass=($chk_page==$i)?"class='selectPage'":"";   
                if($i<=4){   
                echo "<a $nClass href='$urlquery_str"."pages=".intval($i+1)."'>".intval($i+1)."</a> ";      
                }   
                if($i==$total_p-1 ){    
                echo "<a class='SpaceC'>. . .</a><a $nClass href='$urlquery_str"."pages=".intval($i+1)."'>".intval($i+1)."</a> ";      
                }          
            }   
        }   
        if($chk_page>=4 && $chk_page<$lt_page){   
            $st_page=$chk_page-3;   
            for($i=1;$i<=5;$i++){   
                $nClass=($chk_page==($st_page+$i))?"class='selectPage'":"";   
                echo "<a $nClass href='$urlquery_str"."pages=".intval($st_page+$i+1)."'>".intval($st_page+$i+1)."</a> ";         
            }   
            for($i=0;$i<$total_p;$i++){     
                if($i==$total_p-1 ){    
                $nClass=($chk_page==$i)?"class='selectPage'":"";   
                echo "<a class='SpaceC'>. . .</a><a $nClass href='$urlquery_str"."pages=".intval($i+1)."'>".intval($i+1)."</a> ";      
                }          
            }                                      
        }      
        if($chk_page>=$lt_page){   
            for($i=0;$i<=4;$i++){   
                $nClass=($chk_page==($lt_page+$i-1))?"class='selectPage'":"";   
                echo "<a $nClass href='$urlquery_str"."pages=".intval($lt_page+$i)."'>".intval($lt_page+$i)."</a> ";      
            }   
        }           
    }else{   
        for($i=0;$i<$total_p;$i++){     
            $nClass=($chk_page==$i)?"class='selectPage'":"";   
            echo "<a href='$urlquery_str"."pages=".intval($i+1)."' $nClass  >".intval($i+1)."</a> ";      
        }          
    }      
    if($chk_page<$total_p-1){   
        echo "<a href='$urlquery_str"."pages=".intval($pNext+1)."'  class='naviPN'>Next</a>";   
    }   
}
?>
<?php
// ส่วนของการกำหนดค่า
$setContainBox=500; // ความกว้างของพื้นที่เนื้อหา
$setNumColumn=3; //จำนวนคอลัมน์ที่ต้องการแสดง
$setNumRow=3; // จำนวนแถวที่ต้องการแสดง
$setHeightColumn=75; //ความสูงของแต่ละแถว
$setMarginColumn=2; // ระยะห่างระหว่างแถวและระหว่างคอลัมน์
$setWidthBorder=1; // ความกว้างเส้นขอบ
$setWidthColumn=($setContainBox/$setNumColumn)-(($setMarginColumn*$setNumColumn)+($setWidthBorder*$setNumColumn)*2);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style type="text/css">
body{   
	font-size:12px;   
}   
/* css แบ่งหน้า */
.browse_page{   
    clear:both;   
    margin-left:12px;   
    height:25px;   
    margin-top:5px;   
    display:block;   
}   
.browse_page a,.browse_page a:hover{   
    display:block;   
	width: 2%;
    font-size:14px;   
    float:left;   
    margin:0px 5px;
    border:1px solid #CCCCCC;   
    background-color:#F4F4F4;   
    color:#333333;   
    text-align:center;   
    line-height:22px;   
    font-weight:bold;   
    text-decoration:none;   
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;	
}   
.browse_page a:hover{   
	border:1px solid #CCCCCC;
	background-color:#999999;
    color:#FFFFFF;   
}   
.browse_page a.selectPage{   
    display:block;   
    width:45px;   
    font-size:14px;   
    float:left;   
    margin-right:2px;   
	border:1px solid #CCCCCC;
	background-color:#999999;
    color:#FFFFFF;   
    text-align:center;   
    line-height:22px;    
    font-weight:bold;   
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;	
}   
.browse_page a.SpaceC{   
    display:block;   
    width:45px;   
    font-size:14px;   
    float:left;   
    margin-right:2px;   
    border:0px dotted #0A85CB;   
    background-color:#FFFFFF;   
    color:#333333;   
    text-align:center;   
    line-height:22px;   
    font-weight:bold;   
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;	
}   
.browse_page a.naviPN{   
    width:50px;   
    font-size:12px;   
    display:block;   
/*    width:25px;   */
    float:left;   
	border:1px solid #CCCCCC;
	background-color:#999999;
    color:#FFFFFF;   
    text-align:center;   
    line-height:22px;   
    font-weight:bold;      
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;	
}  
/* จบ css แบ่งหน้า */
    
    
/* css ส่วนพื้นที่เนื้อหา มีการรับค่าจากตัวแปร PHP */
.showInColumn{
	display:block;
	list-style:none;
	margin:0;
	padding:0;
	width:<?=$setContainBox?>px;
	background-color:#FCC;
}
/* css ส่วนพื้นที่เนื้อหาลิสรายการ มีการรับค่าจากตัวแปร PHP */
.listColumn{
	display:block;
	margin:<?=$setMarginColumn?>px;
	height:<?=$setHeightColumn?>px;
	width:<?=$setWidthColumn?>px;
	float:left;  
	border:<?=$setWidthBorder?>px solid #CCC;
}
  </style>    

</head>
<body>
 
 
<?php
   
$sql="SELECT * FROM province WHERE 1  "; // แก้ไขขื่อตารางตามต้องการ
$qr=@mysql_query($sql);     
$total=@mysql_num_rows($qr);  
$e_page=10; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า     
if(!isset($_GET['pages'])){     
    $_GET['pages']=0;    
    $chk_page=0;
}else{     
    $_GET['pages']=$_GET['pages']-1;  
    if($_GET['pages']<0){  
        $_GET['pages']=0;     
    }  
    $chk_page=$_GET['pages'];       
    $_GET['pages']=$_GET['pages']*$e_page;     
}     
$sql.="  LIMIT ".$_GET['pages'].",$e_page";  
$qr=@mysql_query($sql);     
if(@mysql_num_rows($qr)>=1){     
    $plus_p=($chk_page*$e_page)+@mysql_num_rows($qr);     
}else{     
    $plus_p=($chk_page*$e_page);         
}     
$total_p=ceil($total/$e_page);     
$before_p=($chk_page*$e_page)+1;    
/// END PAGE NAVI ZONE            
echo "<ul class='showInColumn'>";  
while($rs=mysql_fetch_array($qr)){

?>
<li class='listColumn'>
<!--///////// ส่วนของเนื้อหาที่ต้องการแสดง-->
<?=$rs['name_province']?>

</li>
<?php	
}
echo "</ul>";
?>

<br style="clear:both;" />
<br style="clear:both;" />
 <div style="margin:auto;width:100%;">  
  <?php if($total>10){ ?>                    
  <div class="browse_page">     
    <?php        
    if(count($_GET)<=1){  
        $urlquery_str="?";  
    }else{  
        $para_get="";  
        foreach($_GET as $key=>$value){  
            if($key!="pages"){  
                $para_get.=$key."=".$value."&";  
            }  
        }  
        $urlquery_str="?$para_get";  
    }  
    // เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า        
    page_navi($before_p,$plus_p,$total,$total_p,$chk_page);         
    ?>  
    </div>     
    <?php } ?>    


    
</body>
</html>


หรือดูจากเนื้อหานี้เป้นแนวทางเพิ่มเติม

ใช้ css แบ่งเนื้อหา เป็นคอลัมน์ พร้อมแบ่งหน้า ด้วย php 
https://www.ninenik.com/content.php?arti_id=308 via @ninenik

ทบทวน css แบ่งรายการ  3 คอลัมน์ อย่างง่าย 
https://www.ninenik.com/content.php?arti_id=499 via @ninenik

แนวทาง การค้นหาจาก หลายรูปแบบ และแบ่งหน้า อย่างง่าย 


ninenik 08-03-2016






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ