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 回答