函数返回最新成员的值

时间:2014-08-06 04:40:44

标签: php mysql function

我尝试使用以下示例创建我的第一个函数:

function getNumMembers(){

    if($this->num_members < 0) {
        $q = "SELECT * FROM ".TBL_USERS;
        $result = mysql_query($q, $this->connection);
        $this->num_members = mysql_numrows($result);
    }

    return $this->num_members;
}

现在我想从数据库中获取最新成员并创建它:

function getNewestMember(){
    $q = "SELECT LAST(username) FROM ".TBL_USERS;
    $result = mysql_query($q, $this->connection);
}

但是因为这只是最新用户名的结果,我不知道我应该如何展示,有什么建议吗?

4 个答案:

答案 0 :(得分:1)

如果您有任何主键或Unique keyCandidate key并且喜欢 ID

使用此查询

$q = "SELECT * FROM ".TBL_USERS." ORDER BY ID DESC LIMIT 1;

或者另一种选择是你可以将create_date存储为TimeStamp

Alter table ".TBL_USERS." add created_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
SELECT * FROM ".TBL_USERS." ORDER BY created_date DESC LIMIT 1

现在就可以显示Lastest_username:

function getNewestMember(){
    $q = "SELECT user_name FROM ".TBL_USERS." ORDER BY created_date DESC LIMIT 1";
    $result = mysql_query($q, $this->connection) or die(mysql_error());
    $row = mysql_fetch_array($result);
    return $row['user_name'];
}
//calling now function
echo($this->getNewestMember());//if i working with objects
echo(getNewestMember());//if i working normally
  

注意: Mysql officially deprecated as of PHP v5.5.0使用mysqlipdo来防止来自sql   注射也。

答案 1 :(得分:0)

尝试自动增量字段

$q = "SELECT username FROM ".TBL_USERS." ORDER BY autoincrement_field DESC LIMIT 1;

如果您没有任何主键,那么需要两个查询

SELECT COUNT(*) FROM yourTable;  //counting all rows
SELECT * FROM yourTable LIMIT useCountHere - 1,1;  // give you last row

答案 2 :(得分:0)

首先,不要使用mysql_query构建任何东西 - 你应该使用mysqli。

接下来,如果这是你的第一个函数,为什么要在$ this上调用属性?这是一个类方法还是一个函数?如果它是一种类方法,那么你也应该明确地将可见性设置为public / private / protected。

接下来,TBL_USERS是一个常量吗?

答案 3 :(得分:0)

尝试此查询以选择最后一行。

$q = "SELECT * FROM ".TBL_USERS." ORDER BY ID DESC LIMIT 1;

注意:如果表格中有唯一的ID字段。