|
|
|
เริ่มงงกับ ASC DESC เรียงลําดับ ฐานข้อมูลแหละครับ โดยให้กรอกข้อมูลล่าสุดมาอยู่หัวแรกสุดคือลําดับที่1 แล้วหมายเลขต้องให้แสดงหมายเลข 1ด้วยครับ |
|
|
|
|
|
|
|
อธิบายได้งงหน่ะครับ
โดยให้กรอกข้อมูลล่าสุดมาอยู่หัวแรกสุดคือลําดับที่1 ก็น่าจะ ORDER BY date DESC
ส่วนลำดับเมื่อเรานำมาแสดง
ในคำสั่ง
do{
echo $i++; น่าจะตัวนี้หน่ะครับ
}while()
|
|
|
|
|
Date :
2010-12-21 14:01:43 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือในฐานข้อมูล ลําดับหมายเลข นี้ฟิลเดียวใช่ไหมครับไม่ต้องสร้างมาสองฟิลแบบผม
คือง่ายครับ เวลากรอกข้อมูลเพิ่มไปเรื่อยก็ให้ข้อมูลที่เพิ่มล่าสุดไปอยู่ลําดับแรกคือไม่ต้องไปต่อท้ายเรื่อยๆอ่ะครับให้ไปอยู่หัวแรกสุดเรื่อยๆเลยอ่ะครับอ่ะ แล้วลําดับหมายเลขต้องเป็นลําดับ 1ตลอด
|
ประวัติการแก้ไข 2010-12-21 14:06:54
|
|
|
|
Date :
2010-12-21 14:05:08 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NO_ID ก็ auto_inclument อยู่แล้วนี้ครับ
แล้วคุณบอกว่า โดยให้กรอกข้อมูลล่าสุดมาอยู่หัวแรกสุดคือลําดับที่1 มันก็ต้องมีฟิว date มาเป็นตัวเช็คว่าอันไหนล่าสุด
ก็ ORDER BY date DESC ตามวันที่ล่าสุดมาก่อน
ส่วนหมายเลขลำดับคุณก็ทำการ echo $i++; ในลูปที่จะนำมาแสดงได้เลย อันไหนล่าสุด ก็จะลำดับ 1 อยู่แล้ว
ไม่รู้ผมเข้าใจคุณถูกหรือเปล่าหน่ะ
|
|
|
|
|
Date :
2010-12-21 14:11:26 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เข้าใจถูกแล้วแต่ผมจะแก้ยังไงครับ
Code (PHP)
$result = mysql_query($command." ORDER BY date DESC LIMIT ".$pager->limitStart().", ".$config['per_page']) or die (mysql_error());
if($result) {
?>
<?php
while($rs = mysql_fetch_assoc($result)) {
?>
<table border="1" align="center" bordercolor="#000000">
<tr bordercolor="#000000">
<th width="25" bgcolor="#000000" bordercolor="#000000"><?php echo $rs["ID"]; ?></th>
<th bordercolor="#000000"><img src="../../upload/image/<?php echo $rs["image"]; ?>"> </th>
<tr>
</table>
|
|
|
|
|
Date :
2010-12-21 14:28:11 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
$result = mysql_query($command." ORDER BY date DESC LIMIT ".$pager->limitStart().", ".$config['per_page']) or die (mysql_error());
if($result) {
?>
<?php
while($rs = mysql_fetch_assoc($result)) {
?>
<table border="1" align="center" bordercolor="#000000">
<tr bordercolor="#000000">
<th width="25" bgcolor="#000000" bordercolor="#000000"><?php echo $i++; ?></th>
<th width="25" bgcolor="#000000" bordercolor="#000000"><?php echo $rs["ID"]; ?></th>
<th bordercolor="#000000"><img src="../../upload/image/<?php echo $rs["image"]; ?>"> </th>
<tr>
</table>
|
|
|
|
|
Date :
2010-12-21 14:33:39 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ แต่มันมีผิดอย่างอ่ะครับ คือว่า อันนี้มันเป็นการแบ่งเพจด้วย พอเปิดไปหน้าสองมัน ก็ดับ1-nใหม่ คือต้องการให้ลําดับหมายเลข 1 ขึ้นแค่หน้าแรกหน้าเดียวนอกนั้นไล่ลําดับหมายเลขตามปกติไล่ไปเรื่อยๆอ่ะครับ
|
|
|
|
|
Date :
2010-12-21 14:48:43 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วการแบ่งเพจคุณส่งด้วยค่า GET ป่ะครับ ถ้าหากใช่
Code (PHP)
<?php $num_page = $pageNum * $maxRows; ?>
$pageNum // คือ จำนวนหน้า หมายถึงหน้าที่เท่าไหร่
$maxRows // คือ จำนวนที่แสดงต่อหน้า
คุณก็เอา $num_page ไปทำการ $num_page++ แทน $i++ ที่ผมบอกไปครั้งแรกครับ
|
ประวัติการแก้ไข 2010-12-21 15:05:13
|
|
|
|
Date :
2010-12-21 15:04:11 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เต็มๆ ขอโทษทีผมเข้าใจยากครับ
Code (PHP)
<?php
require_once ('../../connect/connect.php');
require_once('class/class_apager.php');
/**
* string query
*/
$command = 'SELECT * FROM upload';
/**
* get object result from database
*/
$result = mysql_query($command);
/*
* Configuration pager
*/
$config['cal_func'] = 'ds_ajax';
$config['all_recs'] = mysql_num_rows($result); // all row of data
$config['scr_page'] = 10; // scroll page
$config['per_page'] = 5; // per pager
$config['cur_page'] = ($_GET['page']) ? $_GET['page'] : 1; // current page
$config['act_page'] = 'class="current_page"'; // class css current page
$config['css_page'] = 'class="css-pager"'; // clss css area split page
$config['first'] = '« First'; // first page
$config['previous'] = '‹ Prev'; // previous page
$config['next'] = 'Next ›'; // next page
$config['last'] = 'Last »'; // last page
/**
* create pager instance
*/
$pager = new Pager($config);
/**
* display pager up data
*/
try {
$pager->createPager();
}
catch(Exception $e) { echo $e->getMessage(); }
/**
* display data
*/
$result = mysql_query($command." ORDER BY date DESC LIMIT ".$pager->limitStart().", ".$config['per_page']) or die (mysql_error());
if($result) {
?>
<?php
while($rs = mysql_fetch_assoc($result)) {
?>
<table border="1" align="center" bordercolor="#000000">
<tr bordercolor="#000000">
<th width="25" bgcolor="#000000" bordercolor="#000000"><?php echo $rs["NO"]; ?></th>
<th bordercolor="#000000"><img src="../../upload/image/<?php echo $rs["image"]; ?>"> </th>
</tr>
<?
}
}
?>
</table>
<?
mysql_close($connect);
?>
<?php
/**
* display pager down data
*/
try {
$pager->createPager();
}
catch(Exception $e) { echo $e->getMessage(); }
?>
class
Code (PHP)
<?php
class Pager {
private $_start;
private $_stop;
private $_all_page;
private $_tmp_page;
private $_config = array();
/**
* Initialization
*
* @param string $config
*/
public function __construct($config) {
$this->_config = $config;
(!is_numeric($this->_config['cur_page'])) ? $this->_config['cur_page'] = 1
: $this->_config['cur_page'] = $config['cur_page'];
$this->_all_page = self::totalPage();
}
/**
* Create Pager
*
* @return void
*/
public function createPager() {
if(!$this->_tmp_page = self::compilePager())
throw new Exception( 'Error obtaining pager!' );
echo $this->_tmp_page;
}
/**
* define private 'compilePager()' method
*
* @return complete pager
*/
private function compilePager() {
$this->_tmp_page = '<div class="pager"><p '.$this->_config['css_page'].'>';
if ($this->_all_page > 1 && $this->_config['cur_page'] > 1) {
$this->_tmp_page .= '<a href="javascript:void(0);" onclick="'.$this->_config['cal_func'].'(1);">'.$this->_config['first'].'</a>';
}
if ($this->_all_page > 1 && $this->_config['cur_page'] > 1) {
$this->_tmp_page .= '<a href="javascript:void(0);" onclick="'.$this->_config['cal_func'].'('.($this->_config['cur_page'] - 1).');">'.$this->_config['previous'].'</a>';
}
if ($this->_all_page <= $this->_config['scr_page']) {
if($this->_config['all_recs'] <= $this->_config['per_page']) {
$this->_start = 1;
$this->_stop = $this->_all_page;
} else {
$this->_start = 1;
$this->_stop = $this->_all_page;
}
} else {
if($this->_config['cur_page'] < intval($this->_config['scr_page'] / 2) + 1) {
$this->_start = 1;
$this->_stop = $this->_config['scr_page'];
} else {
$this->_start = $this->_config['cur_page'] - intval($this->_config['scr_page'] / 2);
$this->_stop = $this->_config['cur_page'] + intval($this->_config['scr_page'] / 2);
if($this->_stop > $this->_all_page) $this->_stop = $this->_all_page;
}
}
if ($this->_all_page > 1) {
for ($i = $this->_start; $i <= $this->_stop; $i++) {
if ($i == $this->_config['cur_page']) {
$this->_tmp_page .= '<span '.$this->_config['act_page'].'>'.$i.'</span>';
} else {
$this->_tmp_page .= '<a href="javascript:void(0);" onclick="'.$this->_config['cal_func'].'('.$i.');">'.$i.'</a>';
}
}
}
if ($this->_config['cur_page'] < $this->_all_page) {
$this->_tmp_page .= '<a href="javascript:void(0);" onclick="'.$this->_config['cal_func'].'('.($this->_config['cur_page'] + 1).');">'.$this->_config['next'].'</a>';
}
if ($this->_config['cur_page'] < $this->_all_page) {
$this->_tmp_page .= '<a href="javascript:void(0);" onclick="'.$this->_config['cal_func'].'('.$this->_all_page.');">'.$this->_config['last'].'</a>';
}
return $this->_tmp_page.'</p></div>';
}
/**
* Limit Start
*
* @return limit start
*/
public function limitStart() {
return ($this->_all_page <= 1) ? 0 : ($this->_config['cur_page'] - 1) * $this->_config['per_page'];
}
/**
* Total Page
*
* @return total page
*/
public function totalPage() {
return ($this->_config['all_recs']) ? ceil($this->_config['all_recs'] / $this->_config['per_page']) : 0;
}
}
|
|
|
|
|
Date :
2010-12-21 15:11:41 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$pageNum // คือ $config['cur_page']
$maxRows // คือ $config['per_page'] = 5; // per pager
ครับ
|
|
|
|
|
Date :
2010-12-21 15:32:12 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เจ๋ง แต่มันเริ่มลําดับหมายเลขที่5ครับ ถ้าผมปรับ $config['per_page'] = 5; // per pager เป็น 1ก็มีหน้าละ1แถว
Code (PHP)
$config['cal_func'] = 'ds_ajax';
$config['all_recs'] = mysql_num_rows($result); // all row of data
$config['scr_page'] = 10; // scroll page
$config['per_page'] = 5; // per pager
$config['cur_page'] = ($_GET['page']) ? $_GET['page'] : 1; // current page
$config['act_page'] = 'class="current_page"'; // class css current page
$config['css_page'] = 'class="css-pager"'; // clss css area split page
$config['first'] = '« First'; // first page
$config['previous'] = '‹ Prev'; // previous page
$config['next'] = 'Next ›'; // next page
$config['last'] = 'Last »'; // last page
/**
* create pager instance
*/
$pager = new Pager($config);
/**
* display pager up data
*/
try {
$pager->createPager();
}
catch(Exception $e) { echo $e->getMessage(); }
/**
* display data
*/
$num_page = $config['cur_page'] * $config['per_page'];
$result = mysql_query($command." ORDER BY date DESC LIMIT ".$pager->limitStart().", ".$config['per_page']) or die (mysql_error());
if($result) {
?>
<?php
while($rs = mysql_fetch_assoc($result)) {
?>
<table border="1" align="center" bordercolor="#000000">
<tr bordercolor="#000000">
<th width="25" bgcolor="#000000" bordercolor="#000000"><?php echo $num_page++; ?></th>
<th bordercolor="#000000"><img src="../../upload/image/<?php echo $rs["image"]; ?>"> </th>
|
|
|
|
|
Date :
2010-12-21 16:03:03 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพราะตรงนี้ครับ
$config['cur_page'] = ($_GET['page']) ? $_GET['page'] : 1; // ถ้าหากค่า $_GET['page'] ไม่มี ตัว $config['cur_page'] ก็เลยมีค่าเป็น 1 พอนำไป $config['cur_page'] * $config['per_page']; มันก็เลยเริ่มที่ 5 ครับ เพราะ 1 คูณ 5
คุณน่าจะแก้ได้หหน่ะครับ
|
|
|
|
|
Date :
2010-12-21 16:10:31 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เริ่ม คิิดหนักขอเแลยแล้วอธิบายได้ไหมครับ
|
|
|
|
|
Date :
2010-12-21 16:23:05 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รู้แต่ว่าเอา คูณออกแล้ว
Code (PHP)
$num_page = $config['cur_page'];
แล้วก็ Code (PHP)
$num_page++;
แต่มันก็ได้แค่หน้าเดียวหน้าสองก็เริ่มนับ ตั้งแต่2 3ไปเรื่อยๆ
ไม่ได้จริงๆแล้วครับ
|
|
|
|
|
Date :
2010-12-21 16:31:40 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$num_page = $pager->limitStart();
|
|
|
|
|
Date :
2010-12-21 16:49:44 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นั่นไงพี่ปลากริม ออกแล้ว
|
ประวัติการแก้ไข 2010-12-21 16:51:35 2010-12-21 16:53:43
|
|
|
|
Date :
2010-12-21 16:50:56 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โอ้ว สุดยอดจริงได้ แล้ว ครับ แต่ งงว่าทําไมมันเริ่ม 0 ครับ ให้มันเริ่ม1อ่ะครับในฐานข้อมูลก็ไม่มี0
|
|
|
|
|
Date :
2010-12-21 16:52:57 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กรำ มันไม่ได้มาจากฐานข้อมูล
|
|
|
|
|
Date :
2010-12-21 16:54:38 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เ้อ้า แล้วจะทําไงให้เริ่มจาก 1อ่ะครับ
|
|
|
|
|
Date :
2010-12-21 16:57:35 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บวก 1 เข้าไปซิท่าน
|
|
|
|
|
Date :
2010-12-21 17:04:25 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บวก 1 ตรงไหนครับ ทํายังอ่า
|
|
|
|
|
Date :
2010-12-22 10:10:05 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แสดงว่าเขียนเพื่อให้ได้ผลลัพธ์อย่างเดียวใช่ไหมครับ เข้าใจโค๊ดบ้างไหม ผมบอกหลายคนแล้วว่าอ่านพื้นฐานในบทเรียนบ้างนะครับ
$num_page = intval($pager->limitStart()) +1;
|
|
|
|
|
Date :
2010-12-22 10:31:47 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ข้ามวันเลย
|
|
|
|
|
Date :
2010-12-22 10:32:07 |
By :
ไวยวิทย์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-ขอบคุณพี่มาครับคืออันนี้มันเป็นโค๊ดที่เค้าทํามาแต่ผมอ่านโค๊ดได้ไม่เยอะนักเพราะ เข้าใจยากครับ เคยอ่านวนไปวนมาซํ้าบ้างทีก้ยังไม่เข้าใจ
|
|
|
|
|
Date :
2010-12-22 10:34:22 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ว่าแต่เรื่องrating พี่ช่วยปรึกษาทีครับเพราะว่า ตรงนี้เค้าเก็บข้อมูลอะไรบ้างเคยตั้งกระทู้ถามไป ผมจะเอาโค๊ดrating ของjquery มาทําการเขียนคะแนนโหวตลงฐานข้อมูลเพื่อว่า ถ้าคะแนนใครมากกว่าจะให้เด้งไปอยู่อันดับ1ครับ แต่ไม่รู้ว่าแอตทิบิ้วนี้คืออะไรเลยไม่รู้จะ INSERTยังไง
https://www.thaicreate.com/php/forum/053456.html
มันมีvalue แต่ก็ไม่ทราบว่า มันคือ IDรึป่าวครับ ขอแนวทางการทําโหวตด้วยครับ
|
|
|
|
|
Date :
2010-12-22 10:40:24 |
By :
kenghockey |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|