1

所以我有形式:

    <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

4 回答 4

4

首先使用mysql_fetch_assoc作为使用字母键。

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

person($id)['name']

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

$personData = person($id);
$name = $personData['name'];
于 2012-08-30T08:39:19.980 回答
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 '|').
于 2012-08-30T08:36:53.760 回答
0
$per=person('12');

获取姓名 name, sname, age

$per[0] for name, $per[1] for sname and $per[2] for age;
于 2012-08-30T08:37:03.040 回答
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>
 ......
于 2012-08-30T08:51:45.417 回答