从函数调用变量并在文本字段oop php中显示

时间:2012-12-02 19:53:20

标签: php html oop function variables

我希望以html格式(在文本字段或选择列表中)显示用户特定数据

我在MyClass类中有一个函数ShowUserInformation():

function ShowUserInformation()
{
    $query = "SELECT id, name, email FROM saloni WHERE id = '$_SESSION[ID_korisnika]'";
    $result = mysql_query($query);
    while($row=mysql_fetch_array($result)):
        $id= $row['id'];
        $name= $row['name'];
        $email = $row['email'];
        $address= $row['address'];
        $address2= $row['address2'];
        $address3= $row['address3'];
    endwhile;   

    return $result;
}   

我的问题是:如何在文本框或选择列表中的另一页上显示$ name或$ email,$ id ...的值?

如果我以程序方式这样做,那么当我这样做时它会起作用:

<input type="text" value="<?php echo $name ?>" name="name" class="" />

但是,如何以oop方式显示$ name,$ email,$ ID ...有没有办法直接调用它,而不是将其声明为类变量,然后调用它。 我已经包含了文件,创建了对象......

$my_class = new MyClass; //create an object of class

HTML - 我尝试过这样的事情......

<input type="text" value="<?php echo $my_class->ShowUserInformation($name)?>" name="name" class="" />

我是PHP和oop的新手,所以对我来说很容易:)

谢谢

3 个答案:

答案 0 :(得分:3)

如果您只计划返回一行,那么为什么不使用mysql_fetch_assoc()

class MyClass{
    public function GetUserInformation(){
        $query = "SELECT id, name, email FROM saloni WHERE id = '$_SESSION[ID_korisnika]'";
        $result = mysql_query($query);
        $info = mysql_fetch_assoc($result);
        return $info;
    } 
}

$class = new MyClass;
$info = $class->GetUserInformation();?>

<input type="text" value="<?php echo $info['id']?>" name="id" class="" />
<input type="text" value="<?php echo $info['name']?>" name="name" class="" />

注意: mysql_ *函数已弃用,您应该转而使用MySQLi或PDO

答案 1 :(得分:1)

首先,更改函数以获取数据:

function ShowUserInformation()
{
    // Assuming you need only one user, I have set "LIMIT" to "1"
    $query = "SELECT id, name, email, address, address2, address3 FROM saloni WHERE id = '$_SESSION[ID_korisnika]' LIMIT 1";
    $result = mysql_query($query);

    return mysql_fetch_array($result);
}

现在,获取信息:

$my_class = new MyClass;
$userData = $my_class->ShowUserInformation();

// HTML
<input type="text" value="<?php echo $userData['name']; ?>" name="name" class="" />

答案 2 :(得分:1)

请试试这个:

<?php  
$show_info=ShowUserInformation();  

$data = $show_info->fetchAll(PDO::FETCH_ASSOC);  
foreach($data as $row){ ?>
<input type="text" value="<?php  $row['name']; ?>" name="name" class="" />
<?php } ?>

OR

<?php $show_info=ShowUserInformation();  
while ($row= mysql_fetch_assoc($show_info){ ?>
<input type="text" value="<?php  $row['name']; ?>" name="name" class="" />
<?php } ?>