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 : 113887



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



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




ถ้าจะแทนค่า การคิวรี่ของผมกับ แบบนี้ทำได้อย่างไรครับ อันนี้เป็นโค๊ดดั้งเดิคัรบผมแค่มาเปลี่ยนดาต้าเบสอ่ะครับ

Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("develope_ttd_km");
$strSQL = "SELECT feed.*, cats.name ";
$strSQL .= "From  tb_feed_rss AS feed ";
$strSQL .= "left join tb_k2_categories AS cats ON feed.id_cat = cats.id ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);

$Per_Page = 2;   // 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;
}

$strSQL .=" order  by feed.id ASC LIMIT $Page_Start , $Per_Page";
$objQuery  = mysql_query($strSQL);
?>


ส่วนของผม เป็นแบบนี้ครับ เพื่อเป็นแนวทางการทำระบบเสิทและแบ่งหน้าครับ คือผมงงท่อนดาต้าเบส คิวรี่อ่ะครับ
Code (PHP)
<?php 
								$db3 = JFactory::getDBO();
								$strSQL3 = "SELECT feed.*, cats.name ";
								$strSQL3.= "From  #__feed_rss AS feed ";
								$strSQL3.= "left join #__k2_categories AS cats ON feed.id_cat = cats.id ";
								$strSQL3.= "order by feed.id desc ";
								$db3->setQuery($strSQL3);
								$Num_Rows = mysql_num_rows($objQuery);
								$rs3 = $db3->loadAssocList();
		
								 ?>		


กับลูปตารางอ่ะครับ แบบนี้ ที่ข้างบนใช้ while ส่วนอันนี้ for each อะครับ

Code (PHP)
<?php foreach ($rs3 as $feed ): ?>
			
			<tr>
			<td><?php echo $feed['name'] ?></td>
			<td><a href="<?php echo $uri_feed ?>" target="new"><?php echo $uri_feed ?></a></td>
			<td><a href="index.php?option=com_k2exporter&task=del_feedth&del_feed_th=<?php echo $feed['id'];?>">Remove</a></td>
		    <input type="hidden" name="option" value="com_k2exporter" />
            <input type="hidden" name="task" value="del_feed_th" />
			</tr>
		    <?php endforeach;?>




Tag : PHP









ประวัติการแก้ไข
2015-01-20 12:32:32
2015-01-20 13:29:11
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-01-20 10:22:50 By : sarut14 View : 840 Reply : 12
 

 

No. 1



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



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


ผมว่าลอง serch joomla paginator ดูครับ joomla มันมีอยู่นะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 10:30:25 By : Chaidhanan
 


 

No. 2



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



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


ตัวนี้ผมเขียนขึ้นมามันไม่ได้ผูกกับ Joomla ครับพี่ชัย คือแค่สร้างคอมโพเน้น แล้วเรียกคิวรี่เองเลย แต่การเรียกคิวรี่ของมัน
จะต้องเรียกตามที่ระบบเขียนคือข้างต้นอ่ะครับ ผมเลยทำหน้าเพจต่อไม่ได้เหอๆ

ส่วนระบบเสิท ก็เช่นกันอ่ะครับ ตอนนี้แค่สับสนว่าจะ แบ่งเพจไงดี ถ้าคิวรี่แบบนี้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 11:00:14 By : sarut14
 

 

No. 3



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



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


Code (PHP)
$where = ' where ....'; // กำหนด where clause สำหรับ การค้นหา
$sql = 'select count( primary_field ) as all_rows from table ' . $where; // เอา $where มาต่อ คิวรี่ count all rows
$rs=mysql_query($sql) or die( $sql . "\n" . mysql_error() );
$ro=mysql_fetch_assoc($rs); 
$all_rows=$ro['all_rows']; // set $all_rows = field all_rows 

$per_page = 20; // กำหนด จำนวน ต่อ หน้า
$current_page = isset( $_REQUEST['current_page']) ? $_REQUEST['current_page'] : 1; 
// กำหนดหน้าปัจจุบันที่จะแสดง  ถ้ามีการส่ง request มา ให้ใช้ค่านั้น แต่ถ้าไม่มี ให้กำหนดเป็น 1

$sql = 'select * from table ' . $where . 
' order by blabla ' . // กำหนดวิธีการจัดเรียง
' limit  ' . ( $current_page * $per_page - $per_page ) . ' , ' . $per_page ; // กำหนดแสดง record ที่เท่าไร จำนวนกี่บันทัด
$rs=mysql_query($sql) or die( $sql . "\n" . mysql_error() );
while( $ro=mysql_fetch_assoc($rs){
    print_r($ro);
}


จากโค๊ดตัวอย่างอันแรก ผมว่าน่าจะแกะโค๊ดได้แล้วนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 13:06:49 By : Chaidhanan
 


 

No. 4



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



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


ท่อนนี้อ่ะครับ VS.คือปกติโค๊ดทั่วไปจะประกาศค่าเหมือนๆกัน แต่ของ Joomla มันประกาศแบบนี้อ่ะครับ เลยใส่พวก
$Num_Rows = mysql_num_rows($objQuery); บางอย่างไม่ออกไม่อ่ะครับ


Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("develope_ttd_km");
$strSQL = "SELECT feed.*, cats.name ";
$strSQL .= "From  tb_feed_rss AS feed ";
$strSQL .= "left join tb_k2_categories AS cats ON feed.id_cat = cats.id ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);


$strSQL3 .=" order  by feed.id ASC LIMIT $Page_Start , $Per_Page";
$objQuery  = mysql_query($strSQL3);



Code (PHP)
<?php 
								$db3 = JFactory::getDBO();
								$strSQL3 = "SELECT feed.*, cats.name ";
								$strSQL3.= "From  #__feed_rss AS feed ";
								$strSQL3.= "left join #__k2_categories AS cats ON feed.id_cat = cats.id ";
								$strSQL3.= "order by feed.id desc ";

								//$db3->setQuery($strSQL3);
								$objQuery = mysql_query($strSQL3) or die ("Error Query [".$strSQL3."]");
								//$rs3 = $db3->loadAssocList();
//ตัวที่ผมปิดจะใช้ได้ แต่พอแทนด้วย $objQuery เออเร่อครับ
								$Num_Rows = mysql_num_rows($objQuery);
								 ?>			



ส่วนท่อนนี้อ่ะครับ

Code (PHP)
<?php foreach ($rs3 as $feed ): ?>
			
			<tr>
			<td><?php echo $feed['name'] ?></td>
			<td><a href="<?php echo $uri_feed ?>" target="new"><?php echo $uri_feed ?></a></td>
			<td><a href="index.php?option=com_k2exporter&task=del_feedth&del_feed_th=<?php echo $feed['id'];?>">Remove</a></td>
		    <input type="hidden" name="option" value="com_k2exporter" />
            <input type="hidden" name="task" value="del_feed_th" />
			</tr>
		    <?php endforeach;?>



กับท่อนนี้ครับ ผมงงช่วงลูปอ่ะครับ ถ้าจะเอา Foreach แทน while หรือจะเอา while แทน ยังไงดีครับ ปกติโค๊ดที่ใช้กันในเวป
จะใช้ while ส่วนมาก

Code (PHP)
<?php
while($objResult = mysql_fetch_array($objQuery))
{
?>
  <tr>
    <td><div align="center"><?php echo $objResult["id"];?></div></td>
    <td><?php echo $objResult["name"];?></td>
    <td><?php echo $objResult["file_feed"];?></td>
    <td><div align="center"><?php echo $objResult["file_date"];?></div></td>
    <td align="right"><?php echo $objResult["link"];?></td>
  </tr>
<?php
}
?>
</table>



ประวัติการแก้ไข
2015-01-20 13:36:33
2015-01-20 13:41:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 13:33:57 By : sarut14
 


 

No. 5



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



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


08.$rs3 = $db3->loadAssocList(); // loadAssocList เป้น array มาครบทุก record แล้วครับ
เลือกเอาครับว่าจะใช้แบบไหน
Code (PHP)
foreach( $rs3 as $row){
	// เอา $row ไปใช้ได้เลยครับ
	print_r( $row);
}
//////////////////////////////////////
$i=0; $c=count($rs3)
while( $i<$c){
	$row=$rs3[$i];
	// ทำสิ่งที่ต้องการ ...
	print_r( $row);
	$i++;
}
//////////////////////////////////////
$i=0; $c=count($rs3)
for( $i; $i<$c; $i++){
	$row=$rs3[$i];
	// ทำสิ่งที่ต้องการ ...
	print_r( $row);
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 13:46:14 By : Chaidhanan
 


 

No. 6



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



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


คือผมอาจจะไม่ไม่เข้าใจเลยครับ เรื่องการคิวรี่แบบฉบับที่ผมเขียน คือตอนนี้การเรียก row มาเพื่อแสดงตาราง
ไม่ติดปัญหาครับ ผมติดแค่ เรื่องการแบ่งเพจหน้าอ่ะครับ กับ การแทรกการเสิทลงไปครับ

เพราะผมดันไปติดการใช้คิวรี่แบบสั้นๆ รวมไปถึงการใช้ foreach เรียกตาราง พอมาทำเพจแบ่งหน้าเลยงงครับ

Code (PHP)
<table class="adminlist">
			<tr>
			<td><b>หมวดหมู่<b></td>
			<td><b>URL RSS</b></td>			
			<td><b>ลบ</b></td>
			</tr>
			
			<?php foreach ($rs3 as $feed ):
			$uri_feed = JURI::root()."media/k2/xml_feed_th/".$feed['file_feed'];
			$file_feed = JPATH_ROOT . DS . 'media' . DS . 'k2' . DS .'xml_rss' .DS.$feed['file_feed'];

			?>
			
			<tr>
			<td><?php echo $feed['name'] ?></td>
			<td><a href="<?php echo $uri_feed ?>" target="new"><?php echo $uri_feed ?></a></td>
			<td><a href="index.php?option=com_k2exporter&task=del_feedth&del_feed_th=<?php echo $feed['id'];?>">Remove</a></td>
		    <input type="hidden" name="option" value="com_k2exporter" />
            <input type="hidden" name="task" value="del_feed_th" />
			</tr>
		    <?php endforeach;?>
			</table>


จากข้างต้นของโค๊ด ผมเรียกคิวรี่ออกมา แล้วเรียกตารางหรือ ทีนี้พอจะต่อยอดแบ่งหน้า พอเจอโค๊ดที่สอนๆกัน
เขาจะใช้วิธีอีกแบบในการคิวรี่อ่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 14:02:57 By : sarut14
 


 

No. 7



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



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


Code (PHP)
$select = "SELECT feed.*, cats.name ";
$from= " FROM #__feed_rss AS feed LEFT JOIN #__k2_categories AS cats ON feed.id_cat = cats.id ";
$where = ''; // กำหนด where clause สำหรับ การค้นหา
$order_by = " order by feed.id desc ";

$db3 = JFactory::getDBO();
$db3->setQuery('select count(*) num_rows ' . $from . $where );
$rs3 = $db3->loadAssocList();
$ro = $rs3[0];
$all_rows=$ro['num_rows'];
$per_page = 20;
$current_page = isset( $_REQUEST['current_page']) ? $_REQUEST['current_page'] : 1;
$all_page = ceil($all_row / $per_page);

$db3->setQuery( $select . $from . $where . $order_by . ' limit ' . ($current_page * $per_page - $per_page) . ' , ' . $per_page );
$rsObj = $db3->loadAssocList();
foreach( $rsObj as $row){
	print_r($row);
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 14:29:48 By : Chaidhanan
 


 

No. 8



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



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


ขอบคุณครับพี่ชัย แต่เห็นโค๊ดที่พี่ชัยเขียนมา ใช้สำหรับ foreach ดูใช้ยากเหมือนกันอ่ะครับ หมายถึงว่าถ้าเอาไปต่อยอด ร่วมกับ
การเขียนแบบปกติอื่นๆ สมมุติเช่นพวกเสิทในหน้าเดียวกันเลย

สอบถามเป็นวิทยาเล็กน้อยครับ สมมุติกรณี ผมคิวรี่ดาต้าเบสแบบตายตัว แบบนี้เสมอๆในจูมล่าไม่มีเปลี่ยน

Code (PHP)
 <?php 
								$db3 = JFactory::getDBO();
								$strSQL3 = "SELECT feed.*, cats.name ";
								$strSQL3.= "From  #__feed_rss AS feed ";
								$strSQL3.= "left join #__k2_categories AS cats ON feed.id_cat = cats.id ";
									if(isset($_GET['keyword']) && $_GET['keyword']!=""){
									$strSQL3.=" AND cats.name LIKE '%".trim($_GET['keyword'])."%' ";
									$strSQL3.=" AND feed.file_feed LIKE '%".trim($_GET['keyword'])."%' ";
								}
								$strSQL3.= "order by feed.id desc ";
								$db3->setQuery($strSQL3);
								$rs3 = $db3->loadAssocList();
								 ?>	



ผมจะพลิกแพลงไงดีครับให้กลับมาใช้งาน พวกโค๊ดแบบนี้ได้ปกติ ในกรณีจะได้เข้าใจการเขียนแบบเวปที่สอนๆเรื่องโค๊ดอะครับเช่น

$qr=@mysql_query($q);
$total=@mysql_num_rows($qr);

$objQuery = mysql_query($strSQL3) or die ("Error Query [".$strSQL3."]"); อันนี้ใส่ที่ไรของผมเออเร่อตลอดเหมือนจะมีในตัวมันเอง
$Num_Rows = mysql_num_rows($objQuery);

อันนี้เจอบ่อยมากครับ การเขียนแบบปกติ เค้าใช้
while($objResult = mysql_fetch_array($objQuery)){ }

ผมจะใช้ foreach ตลอดงาน เลยทำให้งงจุดนี้มากสุดครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:03:16 By : sarut14
 


 

No. 9



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



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


ต้องศึกษา พวก loop ต่างๆ เพิ่มติมนะครับ จะได้ใช้งาน ได้ถุก
และจำไวยกรณ์ ของ คำสั่งเหล่านี้ให้ได้ ต้องหาอ่านเองแล้วนะครับ เพราะมันเยอะ
และจำเป็นต้องหาอ่านด้วยนะครับ เพราะมันสำคัญมาก ใช้อย่างเยอะเลย
แต่ละ loop ก็เหมาะ สำหรับแต่ละตัวแปร มีความเด่นในการใช้งานต่างกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:09:49 By : Chaidhanan
 


 

No. 10



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



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


5555 มึนต่อครับ ผมงงบรรทัดนี้ครับ ถ้าจะเอาไปใช้ เพื่อแบ่งหน้าเพจต่อ ตอนนี้ผม Echo ออกมาได้แต่ จำนวนเรคคอส กับ perpage

ถ้ารบกวนพี่ชัย สอนท่อนสุดท้ายแบ่งเพจอีกรอบได้ไหมครับ ที่ให้ออกมาเป็น

Code (PHP)
Total <?php echo $all_rows;?> Record : <?php echo $per_page;?> Page :
							<?php
					if($per_page)
					{
						echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$per_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> ";
					}
					?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:30:07 By : sarut14
 


 

No. 11



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



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


Code (PHP)
$button_back = $current_page>1? '<a href="?current_page='.($current_page - 1).'" >Back</a>' : '';
$button_next = $current_page<$all_page? '<a href="?current_page='.($current_page + 1).'" >Next</a>' : '';

จะเอาไปใส่ตรงไหน คงรู้นะครับ 5555

$_SERVER[SCRIPT_NAME] ไม่ต้องใส่หรอกครับ เมื่อมันเรียกตัวมันเอง เห็นใส่กันจังเลย
เขามีไว้เช็ค และ เรียกใช้ parent folder กันครับ ถ้า เป็น การเรียกตัวมันเอง หรือ ไฟล์ในระดับเดียวกันเขาไม่ใช้กันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 15:43:37 By : Chaidhanan
 


 

No. 12



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



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


555 ตอบแบบซื่อๆเลยครับ ยังไม่ออกหน้าเพจครับ เหอๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-01-20 16:34:22 By : sarut14
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
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 01
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 อัตราราคา คลิกที่นี่