我需要一些PHP代码来显示所有列(不引用有多少列或它们的名称)以逗号分隔,每行一行格式。
我是一个新手,并且只使用过我按名称引用列的示例:
$result = mysql_query("select * from table1");
while($row = mysql_fetch_array($result))
{
echo $row["field1"].','.$row["field2"];
}
在上面的代码中,我可以根据列数创建循环echo命令(如何获取此值?)以打印所有列 - 如果我可以在输出的第一行显示列名,太棒了,但这不是必不可少的。或者,是否有一个特定的命令可以实现相同的结果?
我认为答案是foreach($row as....)
- 但不确定从那里开始。
答案 0 :(得分:2)
是的,你可以做一个foreach,但如果你只是想以CSV风格显示你的价值,你可以这样做:
id
如果您想要更多地控制输出内容,可以使用foreach:
$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);
}
答案 1 :(得分:1)
您需要计算$row
数组
while($row = mysql_fetch_array($result))
{
$columns = count($row);
for($i = 0; $i < $columns; $i++)
{
echo $row[$i].',';
}
}
或者你可以使用foreach()
,正如@Dagon指出的那样 -
while($row = mysql_fetch_array($result))
{
foreach($row as $column)
{
echo $column . ',';
{
}
请stop using mysql_*
functions。它们不再被维护,而是officially deprecated。请改为了解prepared statements,并考虑使用PDO。