如何在我的 php 代码中设置配置文件名称或用户名


How to set either profile name else user name in my php code

我想显示我的消息系统用户配置文件名称(如果有)否则显示用户名。

在我的每个代码中,我都使用了如下代码,效果很好。

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