我需要一些 PHP 代码来以逗号分隔、每行一行、格式显示所有列(不引用有多少列或它们的名称)。
我是新手,只处理过按名称引用列的示例:
$result = mysql_query("select * from table1");
while($row = mysql_fetch_array($result))
{
echo $row["field1"].','.$row["field2"];
}
在上面的代码中,我可以创建一个基于列数的循环回显命令(我如何获得这个值?)来打印所有列——如果我可以在输出的第一行显示列名,很好,但这不是必需的。或者,是否有特定的命令可以达到相同的结果?
我认为答案是 foreach($row as....)
- 但不确定从那里去哪里。
最佳答案
是的,你可以做一个 foreach,但如果你只想以 CSV 样式显示你的值,你可以这样做:
$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);
}
如果你想更好地控制你的输出,你可以使用 foreach :
while($row = mysql_fetch_array($result))
{
foreach ($row as $column => $value) {
echo $column.' : '.$value."\n";
}
}
关于PHP 在不知道有多少列的情况下显示所有 MySQL 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30062832/