php เกี่ยวกับเรียง id และดึงวันที่จากฐานข้อมูลมาแสดงเป็นแบบไทย

php เกี่ยวกับเรียง id และดึงวันที่จากฐานข้อมูลมาแสดงเป็นแบบไทย


สวัสดีครับ รบกวนสอบถามหน่อยนะครับ



- PHP select id มาแสดง แต่ว่าเวลาลบข้อมูลไปมันจะเรียงไม่เป็นระเบียบ เช่น 1 2 3 6 7 8 9

คือจะให้มันแสดงแบบเรียงต่อๆกันไปอ่าครับ เช่น 1 2 3 4 5 6 7 8 9

ไม่ทราบว่าจะเชียนได้อย่างไรร๋อครับ



- PHP select ฟิลด์ซึ่งเก็บเป็น timestamp มาแสดงเวลา แต่มันเป็นฟอร์แมตมัน เช่น 2012-02-29 14:59:07

จะเปลี่ยนให้เป็นรูปแบบภาษาไทย เช่น วันจันทร์ ที่ 29 เดือนกุมภาพันธ์ พ.ศ. 2555 เวลา 14:59:07 น.

ไม่ทราบว่าจะเชียนได้อย่างไรร๋อครับ



<?php

    include_once("db/db.php");

   

$sql = "select * from $tbl_name order by pro_id desc";   

$result = mysql_query($sql);

?>


                        <?php

                            while ( $row = mysql_fetch_object($result) ) { ?>
           

                 <p class="row_content_news">

                            <span class="col_left_content_news">
<?php echo $row->pro_id; ?></span>

                   <strong  class="col_center_content_news"><a href="#"><?php echo $row->pro_name; ?></a></strong>

                            <span class="col_right_content_news">
<?php echo $row->pro_date; ?>

                            </span>                                                         

                        </p>

                        <?php } ?>   




ถ้าไงรบกวนช่วยตอบทีนะครับ หรือถ้ามีตัวอย่างด้วยจะขอบคุณมากๆเลยครับ

ปล.ขอบคุณครับ

 


17 พ.ค. 2555 6 11,482

1 ORDER BY ID ครับ (ไม่รู้ผมเข้าใจถูกป่าว) แต่ถ้าหมายถึงต้องการแสดงแค่ตัวเลขเรียงกัน (ตัวเลขไม่เกี่ยวกับข้อมูลก็ทำได้ครับ)

<?php

    $i = 0;

    while ( $row = mysql_fetch_object($result) ) {

        $i++;

        echo '<tr>';

        // แสดงตัวเลขรายการเรียงลำดับ

        echo "<td>$i</td>";

        .......

        echo '</tr>';

    }

?>


2 มีหลายวิธีครับ ลองดูตัวอย่างคร่าวๆไปประยุกต์เอานะครับ

<?php

// แอเรย์เก็บตัวแปรเดือน

$lng['MONTH_SHORT'] = array('มค.', 'กพ.', 'มีค.', 'เมย.', 'พค.', 'มิย.', 'กค.', 'สค.', 'กย.', 'ตค.', 'พย.', 'ธค.');

// แยกวันที่ออก ตัวอย่างนี้เป็น ปี-เดือน-วัน

list($y, $m, $d) = explode('-', $date);

eco 'วันที่ '.$d.' '.$lng['MONTH_SHORT'][(int)$m - 1].' '.($y + 543);

?>
#1

php เกี่ยวกับเรียง id และดึงวันที่จากฐานข้อมูลมาแสดงเป็นแบบไทย


ขอบคุณครับ ขอรบกวนถามอีกซักรอบนะครับ



คือว่าจาก ข้อ 1 มันติดปัญหาอยู่นิดนึงอ่าครับ



- คือถ้าจะให้มันเรียงจากมากไปน้อย จะสามารถทำได้อย่างไรร๋อครับผม



- คือผมแบ่งเพจเอาไว้อ่าครับ เวลาเปลี่ยนเพจ มันจะเริ่มต้นจาก 1 ใหม่ เช่น 1 - 7 พอเปลี่ยนใหม่มันก็เป็น 1 - 7 จะให้มันต่อๆกันเป็น 8 - 14 ยังไงอ่าครับ



ถ้าไงต้องรบกวนด้วยนะครับ ขอบคุณครับ


#2

คงต้องใช้ความสามารถด้านคณิตศาตร์เพิ่มเติมแล้วครับ



1.แทนที่จะให้ $i เริ่มจาก 0 ก็ให้ $i = $page*$list_per_page ซึ่งค่าเหล่านี้ปกติก็ต้องมีเพื่อใช้ในการแบ่งหน้า (ไม่มีตัวอย่าง ลองออกแบบดูนะครับ)

2..ใช้ $i-- แทน $i++ ครับ โดยที่ค่าเริ่มต้นของ $i จะเป็นจำนวนข้อมูลทั้งหมด แทน 0 ครับ



ปล.ผมให้เพียงแนวคิดนะครับ อาจต้องประยุกต์นิดนึงเพื่อให้การทำงานถูกต้อง ซึ่งถ้าเข้าใจวิธีคิด การออกแบบก็ไม่น่าจะยากเท่าไร laugh
#3


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



คือตัวแบ่งเพจผมโหลดมาอ่าครับ มันเป็น class ผมเลยงงๆอ่าครับ ถ้าไงรบกวนช่วยดูให้ทีนะครับผม



นี่ในหน้าที่ให้แสดงผลครับ

<?php

    include_once("include/filename.php");

    include_once("db/db.php");

    include_once("pagination.php");

   

$sql = "select * from $tbl_name order by pro_id desc";   

$result = mysql_query($sql);

$total = mysql_num_rows($result);// นับจำนวนทั้งหมดในฐานข้อมูลตามเงื่อนไข sql ข้างบน

##############################

// กำหนดค่า config ให้กับ pagination class

            $config['base_url'] = "news.php?page=";

            $config['total_rows'] = $total;// ค่าที่นับได้"ทั้งหมด"จาก sql ด้านบน

            $config['per_page'] = 4; //จำนวนเทเบิ้ลที่ต้องการโชว์

            $pagination = new pagination($config);

            $start_item = (!isset($_GET['per_page']) ? "0" : intval($_GET['per_page']));

            /* คิวรี่ข้อมูลออกมาเพื่อแสดงผล */

            $sql .= " limit $start_item, " . $config['per_page'];

            $result = mysql_query($sql);           

?>


<?php

                       
$i = $start_item+1;

                          if ( mysql_num_rows($result) > 0 ) {

                            while ( $row = mysql_fetch_object($result) ) { ?>
           

                           <p class="row_content_news">

                            <span class="col_left_content_news"><? //php echo $row->pro_id;

                            echo $i;

                            $i++;


                            ?>




นี่ในหน้าไฟล์ pagination.php ครับ

<?php

class pagination {



    public $base_url = '';

    public $total_rows = '';

    public $per_page = 10;

    public $num_links = 5;

    

    public $full_tag_open = '';

    public $full_tag_close = '';



    public $first_link = 'First';

    public $first_tag_open = '';

    public $first_tag_close = '&nbsp;';

    

    public $last_link = 'Last';

    public $last_tag_open = '&nbsp;';

    public $last_tag_close = '';

    

    public $next_link = "&gt;";

    public $next_tag_open = '&nbsp;';

    public $next_tag_close = '&nbsp;';

    

    public $prev_link = "&lt;";

    public $prev_tag_open = '&nbsp;';

    public $prev_tag_close = '';



    public $cur_tag_open = '<strong style="font-size:14px; font-weight:bold; color:#402711; float:left; margin-top:1px;">'; ////////////////////////////////////  Link Active

    public $cur_tag_close = '</strong>';



    public $num_tag_open = '&nbsp;';

    public $num_tag_close = '';



    public $display_pages = true;





    function __construct($config = '') {

        if (count($config) > 0)

        {

            foreach ($config as $key => $val)

            {

                if (isset($this->$key))

                {

                    $this->$key = $val;

                }

            }

        }

    }// __construct





    
function create_links() {

        // จำนวนที่เข้ามา ไม่มีมากกว่า 0

        if ( $this->total_rows == 0 || $this->per_page == 0 ) {return null;}

        // หาค่าหน้าทั้งหมด

        $total_pages = ceil($this->total_rows/$this->per_page);

        //จำนวนหน้าทั้งหมดมีหน้าเดียว ส่งกลับว่างเปล่า

        if ( $total_pages <= 1 ) {return null;}

        // รับค่า per_page

        $per_page = (isset($_GET['per_page']) ? intval($_GET['per_page']) : '0');

        $end_item_of_page = $per_page;

        // number of current page

        $cur_page = (($per_page/$this->per_page)+1);

        // start list pages

        ##############################################################

        // full tag open

        $output = $this->full_tag_open;

        // first page

        $linknav = 'class = "linknav"'; //คลาส link

        $linklast = 'class = "linklast"';

        $img_last = '<img src="images/btn-last.png" width="21" height="20" alt="btn-last">';

        $img_first = '<img src="images/btn-first.png" width="21" height="20" alt="btn-first">';

        $img_back = '<img src="images/btn-back.png" width="21" height="20" alt="btn-back">';

        $img_next = '<img src="images/btn-next.png" width="21" height="20" alt="btn-next">';

        if ( $this->first_link !== false && $per_page > '0' ) {

            $output .= $this->first_tag_open . "<a href=\"" . $this->base_url . "&per_page=0\"$linknav>" . $img_first ."</a>" . $this->first_tag_close; ///////////////////////////////  Link First

        }

        // previous page

        if ( $this->prev_link !== false && $per_page > '0' ) {

            $output .= $this->prev_tag_open . "<a href=\"" . $this->base_url . "&per_page=" . ($per_page-$this->per_page) . "\"$linknav>" . $img_back . "</a>" . $this->prev_tag_close; ////////////////////// Link Back

        }

        // number of pages--------------------------------------------------------------------------------#

        if ( $this->display_pages !== false ) {

            // number of links Before

            for ( $i = ($cur_page-$this->num_links);$i<$cur_page;$i++ ) {

                if ( $i > 0 ) {

                    $output .= $this->num_tag_open . "<a href=\"" . $this->base_url . "&per_page=" . (($i*$this->per_page)-$this->per_page) . "\"$linknav>" . $i . "</a>" . $this->num_tag_close;

                }

            }

            // number of link current

            $output .= $this->num_tag_open . $this->cur_tag_open . $cur_page . $this->cur_tag_close . $this->num_tag_close;

            // number of links After

            for ( $i = ($cur_page+1);$i<=($cur_page+$this->num_links);$i++ ) {

                if ( $i <= $total_pages ) {

                    $output .= $this->num_tag_open . "<a href=\"" . $this->base_url . "&per_page=" . (($i*$this->per_page)-$this->per_page) . "\"$linknav>" . $i . "</a>" . $this->num_tag_close;

                }

            }

        }

        // end number of pages--------------------------------------------------------------------------------#

        // next page

        if ( $this->next_link !== false && $per_page < (($total_pages*$this->per_page)-$this->per_page) ) {

            $output .= $this->next_tag_open . "<a href=\"" . $this->base_url . "&per_page=" . ($per_page+$this->per_page) . "\"$linknav>" . $img_next. "</a>" . $this->next_tag_close; ///////////////// Link Next

        }

        // last page

        if ( $this->last_link !== false && $per_page < (($total_pages*$this->per_page)-$this->per_page) ) {

            $output .= $this->last_tag_open . "<a href=\"" . $this->base_url . "&per_page=" . (($total_pages*$this->per_page)-$this->per_page) . "\"$linklast>" .$img_last. "</a>" . $this->last_tag_close; /////////////// Link Last

        }

        // full tag close

        $output .= $this->full_tag_close;

        return $output;

    }// create_links





}

?>




ซึ่งโค็ดดังกล่าวเป็นการแบ่งเพจ ซึ่งเรียงจาก น้อย-ไปมาก ไม่มีปัญหาครับ



แต่ถ้าจะกลับกันให้มากไปน้อย นี่สามารถจะเขียนได้ยังไงร๋อครับ ต้องรบกวนอีกแล้วนะครับ ขอบคุณครับ


#4

ดูแล้วงง...



ไม่แน่ใจว่าจะเปลี่ยนจาก



echo $i;



เป็น



echo $total_items - $i;



หรือเปล่านะ (เดาดู)
#5

เรามีข้อมูลอยู่ในฟิลด์ id(int), idk(varchar), name(varchar) ชื่อตารางว่า money ข้อมูลในตารางมีดังนี้

ลำดับ   วันเดือนปี  ตัวเลข

1       1/2551    100

2      2/2551    366

3      10/2551   362

แล้วถ้าเราเพิ่มการคำนวณไปจะเป็นดังนี้

ลำดับ วันเดือนปี ตัวเลข ตัวเลขสะสม

1      1/2551   100      100

2     2/2551   366     466

3     10/2551  362     828

จะใช้โค๊ดยังไงในการคำนวณ โดยให้คำนวณเรียงจากวันที่
#6
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^