1

列の情報を使用して入力を作成します。たとえば、フィールドが呼び出されabout_contentた場合、入力フィールドでコンテンツについてのラベルを出力します。これは挿入には問題なく機能しますが、このコードを同様に使用UPDATEし、データベースに入力されたフィールドの現在の値をユーザーに表示したいと考えています。たとえばabout_content = Hello World!、入力値にそれを反映させたい場合。これを動的に行う方法はありますか?

<?php

require('dbc.php');

mysql_select_db($db);
$resultInput = mysql_query("SHOW COLUMNS FROM about WHERE Field NOT IN 
('id', 'created', 'date_modified', 'last_modified', 'update', 'type', 'bodytext') 
AND Field NOT REGEXP '_image'"); // selects only the columns I want

$result = mysql_query("SELECT * FROM about WHERE id=".$_GET['id']); // values I want to put into the values for <input>

while ($row = mysql_fetch_assoc ($result) && $column = mysql_num_rows ($resultInput)) {

    foreach($row as $column => $value){
        echo '<label>'.$column.'<input name="'.$column.'" type="input" value="'.$value.'"></label><br>';
    }
}
?>
4

3 に答える 3

1

mysql_fetch_fieldを参照してください。

if (mysql_num_rows($result) > 0) {
//loop creates inputs
//make $resultInput object to array.
$i=0;
while ($row = mysql_fetch_assoc($result)) {
    $meta = mysql_fetch_field($result, $i);
    if(in_array($meta->name, $resultInput )){
    echo '<div class="wrapper"><label>' . ucfirst(str_replace('_', ' ',$meta->name)) . 
    '<br><input name="' . $meta->name . 
    '" type="text" class="input" value="$row[$meta->name]"><br></label></div>';
    }
    $i++;
 }
}
于 2012-07-01T16:03:25.870 に答える
1

矢印でマークした場所が見えますか? 文字列 の代わりに、( ではなく) で読み取った適切なデータベース値(1)に設定します。value$result$resultInput

方法は次のとおりです。ではなく、クエリに使用mysql_fetch_assocします。行は 1 行しかないため、フォームの生成を開始する前に取得してください。次に、行の値を含む名前付き配列を作成し、各フィールドを名前で取得してフォームに配置できます。SELECTmysql_fetch_row

その方法がわからない場合は、php のドキュメントでmysql_fetch_assoc.

$_GET['id']そして、最後の質問で言われたように逃げてください。あなたはpwnedを懇願しています!

于 2012-07-01T15:28:55.747 に答える