2011-02-27 35 views
3

我試圖從一個表中拉出數據,將列與一個變量進行比較,然後如果它們匹配,則添加它們並更新另一個表上的字段。看起來,UPDATE只在while循環內部工作一次,並將整個表中該列的每一行中的值放入一次。奇怪的是,當我回應它時,所有的值都是正確的(唯一的)..但是隻有當我回聲時...當我用終端看錶時,該列的所有行都是相同的。我已閱讀,你不能一次使用2查詢...然後再...我讀過,你可以,如果第一個是在循環之外...請幫助...在循環中使用mysql_fetch_array和UPDATE

我想添加每行的field1和field2並將總數放在總行中。

繼承人的代碼....

<?php 

require("connection.php"); 


mysql_select_db("database", $connection); 
echo "<br />"; 

$result = mysql_query("SELECT * FROM table"); 

while($row = mysql_fetch_array($result)) 
{ 

$values = ($row['field1'] + $row['field2']); 

echo "values = " . $values; 


$sql=mysql_query("UPDATE table SET total_val = '$values'"); 


echo $row['user_name'] . " " . $values; 
echo "<br />"; 

} 

?> 

繼承人什麼回聲給我

蘇珊14

瑪麗18

鮑勃·13

薩姆21

繼承人數據庫

mysql> SELECT total_val FROM table; 

+-----------+ 
| total_val | 
+-----------+ 
| 21 | 
| 21 | 
| 21 | 
| 21 | 
+-----------+ 

ech totals正是我想要的。我只需要把它們放在total_val列中。

+0

這是什麼問題? – azat 2011-02-27 08:16:39

回答

1

更新特定的(當前)行

目前,它正在做這樣的時候,而在迭代結束循環到達它的總21:

試試這個它更新表值21,因此所有的行包含21

您更新查詢每把這裏條件的唯一ID更新

0123時間 更新所有行
$sql=mysql_query("UPDATE table SET total_val = '$values' WHERE id=$row['id']"); 
+0

真棒!有效!!!謝謝...我已經花了2天的時間來解決這個問題......再次感謝你! – zdvdla 2011-02-27 08:48:05

+0

@zdvdla:我的榮幸,您的歡迎,通過接受答案來回答價值。 – 2011-02-27 08:50:36

+0

好....我試圖將你的答案應用到另一個地方。 – zdvdla 2011-02-27 19:13:43

0

當前查詢更新數據庫中的所有行。在while循環

$sql=mysql_query("UPDATE table SET total_val = '$values' WHERE id=".$row['id']); 
相關問題