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);
}

したがって、関数は配列を返します。この関数から取得して私だけを表示するにはどうすればよいですか: 各入力値の「名前」/「sname」/「年齢」

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
$data = person($id);
$name = $data['name'];

ただし、SQL ステートメントで使用する前に、ur パラメータをエスケープする必要があります。少なくとも次のようなことをしてください:

<?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 に答える
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');

名前名、苗字、年齢を取得する

$per[0] for name, $per[1] for sname and $per[2] for age;
于 2012-08-30T08:37:03.040 に答える