10/10/2018, 11:01

Help module viết bằng class trong php !

Chào mọi người em đang làm đồ án của lớp ! thấy giáo bắt lập trình hướng đối tượng em đang gặp vấn đề viết class cho phần "tin tức" mọi người cho em xin một module viết bằng class em cảm ơn rất nhiều !
tungoso viết 13:12 ngày 10/10/2018
Bạn hình dung thế này cho đơn giản nè, ví dụ với phần tin tức thì có 2 hàm, 1 hàm showAll() để show ra tất cả các tin (gồm tiêu đề và phần mô ta ngắn), và 1 hàm viewDetail(newId) là để xem chi tiết 1 tin. Ý tưởng là vậy, còn trong 2 hàm đó bạn code bình thường.
thuyduongcd viết 13:07 ngày 10/10/2018
http://phpclasses.org
viết 13:02 ngày 10/10/2018
Em vẫn chưa hình dung ra được mong các bác chỉ rõ cho em một doạn code demo nhé hộ em nhé !
Em chưa hiểu là kết nối dữ liêu để trong class hay tác ra riêng nếu để trong class thì các viết như thế nào !
diepnghitinh viết 13:09 ngày 10/10/2018
đây là một lớp connect CSDL đơn giản

PHP Code:
Class Mysql
{

    var 
$link_id;
    var 
$result = array();
    
    public function 
connect($db_host$db_username$db_password$db_name)
    {
        
$this->link_id mysql_pconnect($db_host$db_username$db_password);
        if (
$this->link_id)
        {
            if (
mysql_select_db($db_name$this->link_id)) {
                return 
$this->link_id;
            } else {
                
$this->show_error('<b>Lỗi MYSQL:</b> ','Không thể kết nối CSDL: '.mysql_error());
            }
        }
        else 
$this->show_error('<b>Lỗi MYSQL:</b> ','Không thể truy vấn CSDL: '.mysql_error());
    }
    
    
//tạo query dữ liệu
    
public function query($input)
    {
                
$query=mysql_query($input) or $this->show_error("<b>Lỗi MySQL Query</b> : ",mysql_error());
            
$this->result***91;***93; = $query;
        return 
$query;
    }
        
    
//giải phóng resource
    
public function free_result($query)
    {
        if ( 
is_resource($query) )
        {
            
mysql_free_result($query) or $this->show_error("<b>Lỗi Result MySQL</b> : ",mysql_error());
        }
    }
    
    public function 
get_column($table,$sql,$column)
    {
        
$q $this->query("SELECT * FROM $table $sql");
        
$r $this->fetch_assoc($q);
        return 
$r***91;$column***93;;
    }
        
    
//fetch_array 1 table
    
public function fetch_array($query_id$type=MYSQL_BOTH){
            
$fa mysql_fetch_array($query_id,$type);
        return 
$fa;
    }
        
    
//fetch_assoc 1 table
    
public function fetch_assoc($query_id$type=MYSQL_BOTH){
            
$fa mysql_fetch_assoc($query_id);
        return 
$fa;
    }
        
    
//trả về mysql_num_rows
    
public function num_rows($query_id) {
        
$nr mysql_num_rows($query_id);
        return 
$nr;
    }
        
    
//giải phóng bộ nhớ
    
public function result($query_id$row=0$field) {
            
$r mysql_result($query_id$row$field);
        return 
$r;
    }
        
    
//trả về danh sách table trong database
    
public function list_table(){
        return 
mysql_list_tables($this->db_name);
    }
        
    
//các table name
    
public function tablename($q,$i){
        return 
mysql_tablename($q,$i);
    }
        
    
//lọc dữ liệu an toàn
    
public function escape_string($string){
        if (
get_magic_quotes_gpc()) {
            
$string stripslashes($string);
        }
        return 
mysql_real_escape_string(trim($string));
    }
    
    
//disconnect với database
    
public function dis(){
            
$this->free_result();
        return 
mysql_close($this->link_id);
    }
    
    public function 
show_error($string,$input){
        if (!
$_SESSION***91;'sql_error'***93;)
        {
            
$_SESSION***91;'sql_error'***93; = time();
            
$fp fopen(PATH_BASE.DS.'log.txt''ab');
            
fwrite($fp'<font color="#FF0000">Error</font>: '.$input."\r\nFile: ".$_SERVER***91;'REQUEST_URI'***93;."\r\nIP: ".$_SERVER***91;'REMOTE_ADDR'***93;."\r\n");
            
fclose($fp);
        }
        
        if (isset(
$_SESSION***91;'sql_error'***93;) && (time()-$_SESSION***91;'sql_error'***93;) >= 5)
        {
            
$fp fopen(PATH_BASE.DS.'log.txt''ab');
            
fwrite($fp'<font color="#FF0000">Error</font>: '.$input."\r\nFile: ".$_SERVER***91;'REQUEST_URI'***93;."\r\nIP: ".$_SERVER***91;'REMOTE_ADDR'***93;."\r\n");
            
fclose($fp);
            unset(
$_SESSION***91;'sql_error'***93;);
        }
            echo 
'<html><head>
            <style>
            @charset "utf-8";
            /* CSS Document */
            *{
                margin: 0px;
                padding: 0px;
            }
            body {
                margin:auto;
                font-size: 12px; color: #000000; FONT-FAMILY: Verdana, Tahoma, Arial;
            }
            </style>
            </head><body>'
;
            echo 
'<div style="float: left;text-align:center;"><div style="font-size:15px;text-align:left;background-color:#FF0000;padding:5px;">'.$string.'</div><div style="background-color:#FFFFCC;padding:10px;">'.$input.'</div></div>';
            echo 
'</body></html>';
        exit();
    }

}

$mysql =& new Mysql();

// bắt đầu connect CSDL
$mysql->connect($config***91;'Server'***93;***91;'servername'***93;,$config***91;'Database'***93;***91;'username'***93;,$config***91;'Database'***93;***91;'password'***93;,$config***91;'Database'***93;***91;'dbname'***93;);
// hiệu chỉnh font lúc query
$mysql->query("SET NAMES 'latin1'"); 
có 1 số define và variable ko có trong code mong bạn chú ý, và ko hiểu sao post lên thì [ => ***91; và ] => ***93;
viết 13:03 ngày 10/10/2018
Cảm ơn anh rất nhiều có em sẽ nghiên cứu dần !
Bài liên quan
0