你能发现foreach()错误的来源吗?

I am writing a script to export a MySQL query as a CSV file. So far so good, except that I get an Invalid Argument for the second foreach() statement! I tried to use mysql_data_seek but that did not solve the problem. AFAK $row is an array so it should work.

<?php

$conn = mysql_connect("12**strong text**7.0.0.1", "root", "root") or die(mysql_error());
mysql_select_db("database", $conn); 

if(isset($_POST['submit']))
{
    $filename = 'uploads/'.strtotime("now").'.csv';

    $fp = fopen($filename,"w");

    $sql = mysql_query("SELECT * FROM master") or die(mysql_error());
    $row = mysql_fetch_assoc($sql);

    $seperator = "";
    $comma = "";

    foreach($row as $name => $value)
    {
        $seperator .= $comma . '' .str_replace('','""',$name);
        $comma = ",";
    }

    $seperator .= "
";

    fputs($fp,$seperator);


    mysql_data_seek($sql, 0);

    while( $row = mysql_fetch_assoc($sql) );
    {
        $seperator = "";
        $comma = "";
        foreach($row as $name => $value)
        {
            $seperator .= $comma . '' .str_replace('','""',$value);
            $comma = ",";
        }
        $seperator .= "
";
        fputs($fp,$seperator);
    }
    fclose($fp);
}


?>

I am not able to get why you have added first foreach loop, you code should be as below

<?php

$conn = mysql_connect("12**strong text**7.0.0.1", "root", "root") or die(mysql_error());
mysql_select_db("database", $conn); 

if(isset($_POST['submit']))
{
    $filename = 'uploads/'.strtotime("now").'.csv';

    $fp = fopen($filename,"w");

    $sql = mysql_query("SELECT * FROM master") or die(mysql_error());
    while( $row = mysql_fetch_assoc($sql) );
    {
        $seperator = "";
        $comma = "";
        foreach($row as $name => $value)
        {
            $seperator .= $comma . '' .str_replace('','""',$value);
            $comma = ",";
        }
        $seperator .= "
";
        fputs($fp,$seperator);
    }
    fclose($fp);
}


?>