2011-09-28 65 views
0

我正在使用此php代碼更新表,但沒有更新?在php for循環中這個mysql更新有問題嗎?

if(isset($Submit)) 
{ 
    include('connect_mysql.php'); 
    for($i=0;$i<$count;$i++) 
    { 
     $sql = "UPDATE $table SET cost='{$cost[$i]}', net=('{$bypiece[$i]}' + '{$cost[$i]}') WHERE serial='{$serial[$i]}'"; 
     $result = mysql_query($dbcon, $sql); 
    } 
} 

if($result) 
{ 
    header("location:admin-index.php#office.php"); 
    mysql_close(); 
} 

它似乎應該工作,我沒有理由爲什麼它不會。 我的變量被定義了,當我用else語句迴應它們時,一切似乎都沒有問題。然而數據沒有被更新,並且標題不重定向。 任何人都可以幫我找到一個工作解決方案嗎?

+3

你厭倦了迴應$ sql,並測試它是否有效嗎?怎麼樣mysql_error(),這是否給你任何東西? –

+1

你會得到哪個mysql錯誤描述? http://php.net/manual/en/function.mysql-error.php – hakre

+0

如果未設置「$ Submit」,則不會初始化'$ result'。然後你運行多個查詢W/O甚至檢查他們是否工作。例如。如果最後一次失敗,你將不會被發現任何事情,並且不會有重定向。 – hakre

回答

1

調試時的一個好主意是打開錯誤報告。

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

也看到,如果你通過改變

$result=mysql_query($dbcon, $sql); 

$result=mysql_query($dbcon, $sql) or die(mysql_error()); 
+0

謝謝你,我從來沒有想過把錯誤報告放在頁面上。這導致我的錯誤。 –

0

變化在你的SQL語句中的任何錯誤:

net=('{$bypiece[$i]}' + '{$cost[$i]}') 

要:

net=({$bypiece[$i]} + {$cost[$i]}) 

您還應該對查詢進行一些錯誤檢查。

if(isset($Submit)){ 
include('connect_mysql.php'); 
$count=20; 
for($i=0;$i<$count;$i++){ 
    $sql="UPDATE $table SET cost='{$cost[$i]}', net=({$bypiece[$i]} + {$cost[$i]}) WHERE serial='{$serial[$i]}'"; 
    $result=mysql_query($dbcon, $sql) or die(mylsql_error()); 
} 
if($result){ 
    header("location:admin-index.php#office.php"); 
    mysql_close(); 
} 
} 
+0

謝謝,但這也沒有工作。 –

0

什麼是$計數設置爲?由於$ count沒有被設置爲任何值,因此你的代碼現在處於無狀態。

+0

$ count = mysql_num_rows($ result2); –