A-AA+then

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

10,338
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 } ?>   

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

6 ความคิดเห็น

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
^