从不同的地方向函数发送参数?

时间:2013-04-16 09:58:28

标签: php pdo

我有一个获取用户值的函数。用户名和电子邮件。

现在我希望这些值在两个表单字段中回显。

是可能的还是我需要两种不同的功能?

我想这样的事情

        function fetch_user_value($username,$email){
        global $db;
        $query = $db->query("SELECT `username`,`email` FROM `user` WHERE id = {$_SESSION['uid']} ");
        $row = $query->fetch(PDO::FETCH_ASSOC);
        echo $row['username'];
        echo $row['email'];
        } 

    <input type='text' name='username' id='username' value="<?php echo fetch_user_value('username'); ?>" />


<input type='text' name='email' id='email'  value="<?php echo fetch_user_value('email'); ?>" /> 

3 个答案:

答案 0 :(得分:2)

试试这个:

//删除了您传递的参数,因为您只在基于sessionid的

的基础上获取值
function fetch_user_value(){
  global $db;
  $query = $db->query("SELECT `username`,`email` FROM `user` WHERE id = {$_SESSION['uid']} ");
  $row = $query->fetch(PDO::FETCH_ASSOC);
  return $row;
}

//而不是两次调用它,只调用一次

$userD = fetch_user_value();

<input type='text' name='username' id='username' value="<?php echo $userD['username']; ?>" />
<input type='text' name='email' id='email'  value="<?php echo $userD['email']; ?>" /> 

答案 1 :(得分:1)

尽管user868766的答案是正确的,但请考虑使这样的功能更有用。 一个通用的,用于从任意查询中返回所需的结果:

$user = $db->getRow("SELECT username,email FROM user WHERE id =?i",$_SESSION['uid']);

使用良好的抽象库,您不需要这种情况下的指定函数。

答案 2 :(得分:0)

只需使用一个功能,这样:

  function fetch_user_value($field){
     global $db;
     $query = $db->query("SELECT ".$field." FROM `user` WHERE id = {$_SESSION['uid']} ");
     $row = $query->fetch(PDO::FETCH_ASSOC);
     echo $row[$field];
    }