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 เวลา 17:46 น. 6 10,500

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
^