PHP:如何从返回数组的函数中读取值

时间:2012-08-30 08:33:42

标签: php arrays function get

所以我有表格:

    <form method="post">
    Name: <input type="text" name="name" value<? if(isset($_GET['edit'])) {echo '="'. person($_GET['edit']) .'"';} ?>/><br>
    Surname: <input type="text" name="surname" value<? if(isset($_GET['edit'])) {echo '="'. person($_GET['edit']) .'"';} ?>/><br>       
    Age: <input type="text" name="age" value<? if(isset($_GET['edit'])) {echo '="'. person($_GET['edit']) .'"';} ?>/><br>
    <input type="submit" value="Submit" name="submit"/> 
</form>

    function person($id) {
    $query = 'SELECT name, sname, age FROM persons WHERE ID='.$id.';';
    $result = mysql_query($query);
    return $row = mysql_fetch_row($result);
}

所以函数返回一个数组,如何从这个函数中获取只显示我:每个输入值中的'name'/'sname'/'age'

4 个答案:

答案 0 :(得分:4)

首先使用mysql_fetch_assoc来使用字母键。

然后你可以在最新版本的PHP中这样做:

person($id)['name']

或者在旧版本的PHP中定义单独的数组:

$personData = person($id);
$name = $personData['name'];

答案 1 :(得分:0)

它就像一个普通的数组,所以你可以使用[id]。如果使用mysql_fetch_row,则必须是从0到n-1的数字,其中n是数组中的项目数,以便您在查询中执行。如果你有mysql_fetch_assoc你可以使用$ test ['name'],$ test ['sname'],$ test ['age']。

$test = person(5);

echo $test[0].$test[1].$test[2]; //will show name|sname|age (withouth '|').

答案 2 :(得分:0)

$per=person('12');

获取姓名,sname,年龄

$per[0] for name, $per[1] for sname and $per[2] for age;

答案 3 :(得分:0)

$data = person($id);
$name = $data['name'];

但是你应该在你的sql语句中使用它们之前转义你的参数! 至少做一些事情:

<?php $_GET['edit'] = mysql_real_escape_string($_GET['edit']); ?>
<form method="post">
Name: <input type="text" name="name" value<? if(isset($_GET['edit'])) {echo '="'.person($_GET['edit']) .'"';} ?>/><br>
 ......