1

ユーザーが自分のアカウント情報を表示および編集できるフォームを作成していますが、フォームフィールドがたくさんあるので、これを可能な限り合理化したいと思います。列名を指定せずにすべての顧客のデータを選択しましたが、それぞれを個別に呼び出す必要がなく、HTMLテーブルの正しい場所に表示するのに問題があります。

以下のコードでmysql_fetch_arrayを使用しましたが、300以上のフィールドで実行するのは非常に面倒です。mysql_fetch_assocを使用できることは知っていますが、正しい場所に印刷する方法がわかりません。

mysql_fetch_assoc (私の無知を許してください、しかし私はWHILEとFOREACHを使わずにこれを機能させることができませんでした)

while ($row = mysql_fetch_assoc($result)) {
foreach($row as $key=>$value){    
echo "$key: $value<br />\n ";            
}}

これは機能しますが、各フィールドを個別に指定する必要があります

<?php  
//Database connection and Open database
require_once('config.php');   
$result = mysql_query("SELECT customer_info.*, style.* FROM customer_info, style WHERE customer_info.user_id = style.user_id AND customer_info.user_id=$user_id ") or die(mysql_error());
$row = mysql_fetch_array($result );
?>

<table border="0" cellspacing="2" cellpadding="2">
<tr><td name="fname">First Name: <?php echo $row['fname']; ?></td>
<td name="lname">Last Name: <?php echo $row['lname']; ?></td>
<td name="email">Email: <?php echo $row['email']; ?></td>
<td name="colors_love">Colors Love: <?php echo $row['colors_love']; ?></td>
</tr></table>

INSERT INTOコードでこれを達成する方法を本質的に逆にする方法はありますか?もしそうなら、それは私の次のタスクを簡素化すると思います(ユーザーが自分の情報を編集できるようにします)

$fieldlist=$vallist='';
foreach ($_POST as $key => $value) {
$fieldlist.=$key.',';
$vallist.='\''.($value).'\',';
}
$result = mysql_query('INSERT INTO taste ('.$fieldlist.') VALUES ('.$vallist.')');
4

2 に答える 2

2

これのような?

    <?php  
//Database connection and Open database
require_once('config.php');   
$result = mysql_query("SELECT customer_info.*, style.* FROM customer_info, style WHERE customer_info.user_id = style.user_id AND customer_info.user_id=$user_id ") or die(mysql_error());
$row = mysql_fetch_assoc($result );
?>

<table border="0" cellspacing="2" cellpadding="2">
    <tr><?php foreach($row as $field => $content): ?>
        <td><?php echo $field; ?>: <?php echo $content; ?></td>
    <?php endforeach; ?></tr>
</table>
于 2012-08-26T05:14:08.963 に答える
2

ライブラリを使用するのmysqlはひどい考えであるという事実を除けば、実際にはほとんどの方法でそこにいます:

<table>
    <?php while ($row = mysql_fetch_assoc($result)): ?>
    <tr>
        <?php foreach($row as $key=>$value) {   
            echo "<td>$key: $value</td>\n "; 
        } ?> 
    </tr>          
    <?php endwhile; ?>
</table>

db フィールド名をエコーすることはユーザーフレンドリーではないため、明らかにこれを実際のフォームに合わせてクリーンアップする必要があります。

于 2012-08-26T05:16:47.547 に答える