PHP显示所有MySQL列而不知道有多少列

I need some PHP code to display all columns (without referencing how many there are, or their names) in a comma separated, one row per line, format.
I am a novice and have only ever worked with examples where I reference the columns by name:

$result = mysql_query("select * from table1");

while($row = mysql_fetch_array($result))
{
    echo $row["field1"].','.$row["field2"];
}

In the above code, can I create a looping echo command based on the number of columns (how do I get this value?) to print all the columns – if I can display the column names in the first row of output, great, but it’s not essential. Or, is there a specific command that will achieve the same result?

I think the answer is a foreach($row as....) - but not sure where to go from there.

Yep you can do a foreach but if you just want to display your values in a CSV style you can do :

$firstRow = true;
while($row = mysql_fetch_array($result))
{
    if ($firstRow) {
        $firstRow = false;
        $columns = array_keys($row);
        // prints all the column names
        echo implode(',', $columns);
    }

    // print all the values
    echo implode(',', $row);
}

If you want more control over what you output you can use a foreach :

while($row = mysql_fetch_array($result))
{
    foreach ($row as $column => $value) {
        echo $column.' : '.$value."
";
    }
}

You'll want to count the $row array

while($row = mysql_fetch_array($result))
{
    $columns = count($row);
    for($i = 0; $i < $columns; $i++)
    {
        echo $row[$i].',';
    }
}

Or you can use foreach() as @Dagon has pointed out -

while($row = mysql_fetch_array($result))
{
    foreach($row as $column)
    {
        echo $column . ',';
    {
}

Please, stop using mysql_* functions. They are no longer maintained and are officially deprecated. Learn about prepared statements instead, and consider using PDO.