我尝试使用以下示例创建我的第一个函数:
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);
}
但是因为这只是最新用户名的结果,我不知道我应该如何展示,有什么建议吗?
答案 0 :(得分:1)
如果您有任何主键或Unique key或Candidate 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使用mysqli或pdo来防止来自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字段。