2012-08-26 53 views
1

我創建一個表單,用戶可以查看和編輯他們的賬戶信息,我想簡化這一儘可能因爲有很多的表單域。我已經選擇了所有客戶的數據而沒有指定列名,但是我無法在HTML表格中的正確位置顯示而無需單獨調用每個數據。顯示MySQL的行中的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.')'); 
+0

簡單的答案是不。 DBA討厭'SELECT *'你可能最終無意中泄露密碼或其他信息。始終要求查詢返回您需要的內容。 –

回答

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> 

顯然,你會想打掃一下一個真正的形式,因爲echo數據庫字段名稱不完全用戶友好。

+0

謝謝:-D 我的道歉沒有響應越快,但我不知何故錯過了你的答案:-(我現在實際上意識到這個問題;-)有關如何清理它的任何建議?有沒有辦法將字段名稱中的任何下劃線更改爲空格(即User_Name將更改爲用戶?名稱) –

+0

@ChayaCooper是見'str_replace':http://php.net/manual/en/function.str-replace.php –

+0

你真棒:-D –

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> 
+0

我對沒有響應越快道歉,但我有點想念你的答案:-(這正是我需要的,它完美的作品:-D 一個快速的問題 - 任何想法如何,我可以定義每個錶行的表格單元格的數量和/或使之不長2行格式化表格的寬度?設置表格的寬度或應用類似乎不影響顯示信息的方式。 –

相關問題