1

このスクリプトには問題があるようです。$i の値を 2 などに変更すると、すべてのフィールドではなく A フィールドが出力されます。何が悪いのかわかりません。

さらに、このようなことは可能ですか?基本的に結果クエリにはもっと多くのフィールドがありますが、結果クエリにリストされているフィールドの値のみを出力して、ユーザーが編集できるようにしたい (resultInput に表示される)

<?php
require('dbc.php');
mysql_select_db($db);
$result = mysql_query("SELECT * FROM about WHERE id=1");
$resultInput = array('page_header', 'sub_header', 'content', 'content_short');


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++;
 }
}
?>
4

1 に答える 1

2

これは私が行う方法ではありませんが..あなたのコードを取得して、それが機能するように作成しました..

if (mysql_num_rows($result) > 0) { 
//loop creates inputs 
//make $resultInput object to array. 

    while ($row = mysql_fetch_assoc($result)) 
    { 
        $i=0; 
        while ( $i<   mysql_num_fields($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++; 
        } 
    } 
    ?> 

ご参考までに

これは、私がそれをどのようにやったかですが、それを見ても、エコーに満足していません..しかし..

    while ($row = mysql_fetch_assoc($result)) 
    { 
        foreach ($row as $fieldname => $value)
        {
            if (in_array($fieldname, $resultInput )) Display_data($fieldname,$value);
        } 
    } 

function Display_data($fieldname,$value)
{
              echo '<div class="wrapper"><label>' . ucfirst(str_replace('_', ' ',$fieldname)) .  
             '<br><input name="' . $fieldname .  
             '" type="text" class="input" value="'.$value.'"><br></label></div>'; 
} 
于 2012-07-02T12:41:44.373 に答える