我想显示我的消息系统用户配置文件名称(如果有)否则显示用户名。
在我的每个代码中,我都使用了如下代码,效果很好。
if (empty($pname)) $pname = $username;
但是在下面,我无法理解如何在我的"函数getusername($userid)"中返回"配置文件名称其他用户名"。
在这里,如果我在我的"函数 getusername" 中使用返回 $row[0] 它的显示用户名,但我想显示配置文件名称和如果配置文件名称为空,则显示用户名。
获取配置文件名称/用户名代码:
function getusername($userid) {
$sql = "SELECT username,pname FROM users WHERE `id` = '".$userid."' LIMIT 1";
$result = mysql_query($sql);
if(mysql_num_rows($result)) {
$row = mysql_fetch_array($result);
$username = $row['username'];
$pname = $row['pname'];
if (empty($pname)) $pname = $username;
// Now here return $row[0] show only username But How to return pname else username?
return $row[0];
} else {
return "Unknown";
}
}
此代码提取特定消息
function getmessage($message) {
$sql = "SELECT * FROM mail WHERE `id` = '".$message."' && (`from` = '".$this->userid."' || `to` = '".$this->userid."') LIMIT 1";
$result = mysql_query($sql);
if(mysql_num_rows($result)) {
// reset the array
$this->messages = array();
$row = mysql_fetch_assoc($result);
$this->messages[0]['id'] = $row['id'];
$this->messages[0]['title'] = $row['title'];
$this->messages[0]['message'] = $row['message'];
$this->messages[0]['from'] = $this->getusername($row['from']);
$this->messages[0]['to'] = $this->getusername($row['to']);
} else {
return false;
}
}
使用这个
function getusername($userid) {
$sql = "SELECT username,pname FROM users WHERE `id` = '".$userid."' LIMIT 1";
$result = mysql_query($sql);
if(mysql_num_rows($result)) {
$row = mysql_fetch_array($result);
$username = $row['username'];
$pname = $row['pname'];
if (empty($pname)) $pname = $username;
// Now here return $row[0] show only username But How to return pname else username?
return $pname;
} else {
return "Unknown";
}
}
问题在于你如何返回值。
改变:
if (empty($pname)) $pname = $username;
// Now here return $row[0] show only username But How to return pname else username?
return $row[0];
自:
if(empty($pname)) return $username;
else return $pname;
此外,建议您使用 mysqli 而不是 mysql。
你不能用这样的东西吗?
return isset($pname) ? $pname : $username;
这基本上是:如果设置了$pname,则返回$pname,否则返回$username