VNIT

Too lazy to think of a slogan

Trang chủ » Diễn Đàn » Lập trình và Phát triển Web » Phát triển web » tối ưu đoạn code php khi lấy dữ liệu từ CSDL

Chủ đề đã bị khóa, bạn không thể xóa, sửa hay trả lời trong chủ đề này!

First Page Previous Page  1  Next Page Last Page
Locked tối ưu đoạn code php khi lấy dữ liệu từ CSDL
0
question Gởi bởi notobo (22:56 15-09-2011)
Bài: 2 / Điểm VCS: 4 /

Mình đã viết code kết nối tới csdl, còn đoạn code cho class hiển thị dữ liệu nhưng còn dài và có nhiều đoạn trùng nhau.

Mình cần nhiều dữ liệu trong trường channel_name, xếp theo thứ tự order từ bảng channels, rồi echo ra các tag html để chèn vào các trang html khác nhau. Mình chưa viết cho ngắn gọn lại được, vẫn còn đoạn code trùng nhau ở các hàm, vì các hàm chỉ khác nhau ở chỗ echo thôi.

<?php
class Channel{
    public function getData(){
        try{
          return mysql_query("SELECT channel_name from channels ORDER BY channels.order ASC LIMIT 10");
          }

        catch (exception $error){
            echo "Error:" .$error;
        }
    }

    public function showHomeChannel(){
        $result = $this->getData();
        if(mysql_num_rows($result)>0){
            while($row = mysql_fetch_array($result)){
                echo '<div><a href="#">'.$row["channel_name"].'</a></div>';
            }
        }
    }

    public function showSelectedChannel(){
      $result = $this->getData();
        if(mysql_num_rows($result)>0){
            while($row = mysql_fetch_array($result)){
                echo '<option value='.$channel.'>'.$row["channel_name"].'</option>';
            }
        }
    }
}
?>

Mong đc giúp đỡ.
Locked Re: tối ưu đoạn code php khi lấy dữ liệu từ CSDL
0
answer Gởi bởi Thành Bá Nguyễn (2:12 16-09-2011)
Bài: 18,319 / Điểm VCS: 17,795 /

Code của bạn cũng đã ngắn gọn lắm rồi còn gì :-) Có muốn ngắn hơn nữa thì chỉ có bỏ cái câu lệnh if(mysql_num_rows($result)>0) đi vì thực sự không cần thiết lắm.
Locked Re: tối ưu đoạn code php khi lấy dữ liệu từ CSDL
0
answer Gởi bởi notobo (3:37 16-09-2011)
Bài: 2 / Điểm VCS: 4 /

Các hàm vẫn trùng đoạn code này:
$result = $this->getData();
        if(mysql_num_rows($result)>0){
            while($row = mysql_fetch_array($result)){...

vì chỉ khác khi echo thôi.
Locked Re: tối ưu đoạn code php khi lấy dữ liệu từ CSDL
0
answer Gởi bởi Thành Bá Nguyễn (3:54 16-09-2011)
Bài: 18,319 / Điểm VCS: 17,795 /

Các hàm vẫn trùng đoạn code này:
$result = $this->getData();
        if(mysql_num_rows($result)>0){
            while($row = mysql_fetch_array($result)){...

vì chỉ khác khi echo thôi.

Trùng có 2-3 dòng đâu có đáng gì :-) Còn nếu bạn muốn gọn hơn thì có thể làm thế này:

<?php
...
public function showSelectedChannel($mysqlResult) {
    while ( $row = mysql_fetch_array($mysqlResult) ) {
        echo '<option value='.$channel.'>'.$row["channel_name"].'</option>';
    }
}

Rồi ở bên ngoài bạn có thể query rồi truyền cái $mysqlResult vào cho 2 hàm con.
First Page Previous Page  1  Next Page Last Page

Thống kê

Hiện tại web site có 85,806 thành viên. Xin chào đón thành viên mới nhất nightt.

Các thành viên đã tạo 62,822 chủ đề và 241,950 bài viết trong 30 box.

Hiện có 0 thành viên và 1 khách đang trực tuyến.

Template by styleshout / Icons by Tango Icon Library and FamFamFam.