这个mysql更新在php for循环中有问题吗?

时间:2011-09-28 16:16:12

标签: php mysql

我正在使用这个PHP代码更新表,但没有更新?

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 个答案:

答案 0 :(得分:1)

调试时的好主意是打开错误报告。

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

另外,通过更改

来查看sql语句中是否有任何错误
$result=mysql_query($dbcon, $sql);

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

答案 1 :(得分:0)

更改:

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(); 
 } 
}

答案 2 :(得分:0)

$ count设置为什么?

表示,由于$ count未设置为任何值,因此您的代码将无处可进