简体   繁体   English

php代码重用。 有没有更好的方法呢?

[英]php code reuse. Is there a better way to do it?

I have upgrade my code. 我升级了我的代码。 In the old code I had 2 functions: display_maker_success() and display_maker_fail() but I realised I can combine those two functions into one display_maker_stat() by putting more arguments into the function. 在旧代码中我有两个函数: display_maker_success()display_maker_fail()但我意识到我可以通过在函数中加入更多的参数将这两个函数组合成一个display_maker_stat() I like it very much! 我非常喜欢它!

Is better way to do this? 这是更好的方法吗? I want more code reuse. 我想要更多的代码重用。

function display_maker_success($link, $userid){
    $status="closed";
    $result="completed";

    $sql = "select start, name from wuuk where tasker_id ='$userid' and status ='$status' and result ='$result' order by id desc LIMIT 6;";

    $result = mysql_query($sql, $link);
    $isempty=mysql_num_rows($result);
    If ($isempty ==0) {
        echo "No Record";
    } else {
        echo "<table border=1>";
        echo "<tr><th>Date & Time</th><th>Name</th><th>Status</th></tr>";
        while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
            echo "<tr><td>$row[0]</td><td>$row[1]</td><td>Completed</td></tr>";
        };
        echo "</table>";
    };
};

function display_maker_fail ($link, $userid) {
    $status="closed";
    $result="fail";

    $sql = "select start, name from wuuk where tasker_id ='$userid' and status ='$status' and result ='$result' order by id desc LIMIT 1;";
    $result = mysql_query($sql, $link);
    $isempty=mysql_num_rows($result);
    If($isempty ==0){
        echo "No Record";
    } else {
        echo "<table border=1>";
        echo "<tr><th>Date & Time</th><th>Name</th><th>Status</th></tr>";
        while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
            echo "<tr><td>$row[0]</td><td>$row[1]</td><td>fail</td></tr>";
        };
        echo "</table>";
    };
};

function display_maker_stat ($link, $userid, $reuslt, $limit) {
    $status="closed";
    $result="fail";

    $sql = "select start, name from wuuk where tasker_id ='$userid' and status ='$status' and result ='$result' order by id desc LIMIT 1;";
    $result = mysql_query($sql, $link);
    $isempty=mysql_num_rows($result);
    If($isempty ==0){
        echo "No Record";
    } else {
        echo "<table border=1>";
        echo "<tr><th>Date & Time</th><th>Name</th><th>Status</th></tr>";
        while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
            echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$result</td></tr>";
        };
        echo "</table>";
    };
};

Try the below, 试试下面的,

Also there were few errors in your code and i have corrected them. 你的代码中也没有错误,我已经纠正了它们。

function display_maker_stat($link, $userid, $reuslt = 'fail', $limit)
{
    $status = "closed";
    $html = '';
    $sql = "select start, name from wuuk where tasker_id ='$userid' and status ='$status' and result ='$result' order by id desc LIMIT 1;";
    $query = mysql_query($sql, $link);
    if (mysql_num_rows($query) != 0) {
        $html .= "<table border=1>";
        $html .= "<tr><th>Date & Time</th><th>Name</th><th>Status</th></tr>";
        while ($row = mysql_fetch_array($query, MYSQL_NUM)) {
            $html.= "<tr><td>$row[0]</td><td>$row[1]</td><td>$result</td></tr>";
        }
        $html.= "</table>";
        echo $html;
    }
    else {
        echo "No Record";
    }
}

Read about OOP 阅读有关OOP的信息

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM