【问题标题】:Double columns in SQL query resultSQL查询结果中的双列
【发布时间】:2013-09-26 09:34:54
【问题描述】:

我正在尝试将我的 SQL 查询直接输出到表中(不将结果分配给变量)。这是我所拥有的:

<?php
$query = 'SELECT * FROM sites';
$result = mysql_query($query);

echo '<table>';

$count = 0;

while($row = mysql_fetch_array($result)) {

    echo '<tr>';
    $count = $count + 1;
    if($count == 1) {                //Header row
        foreach($row as $name => $value) {
            echo '<th>' . $name . '</th>';
        }
        echo '</tr/><tr>';
    }

    foreach($row as $name => $value) {   //Data rows
        echo '<td>' . $value . '</td>';
    }
    echo '</tr>';
}
echo '</table>';

但是,在结果中我得到双列,如下所示:

0 | ID | 1 | URL | 2 | startDate | etc
1 | 1  | a | a   | b | b         | etc

这里有几个示例行:

Array ( [0] => 1 [ID] => 1 [1] => dadf [URL] => dadf
        [2] => asdf [startDate] => asdf [3] => [server] =>
        [4] => asdf [paymentStatus] => asdf
        [5] => [hostingType] => [6] => [hostingPlan] => ) 

Array ( [0] => 2 [ID] => 2 [1] => hihi [URL] => hihi.com
        [2] => [startDate] => [3] => [server] =>
        [4] => [paymentStatus] => [5] => [hostingType] =>
        [6] => [hostingPlan] => )

我不知道这些编号的重复列是从哪里来的。当然,它们不存在于数据库中,但它们存在于结果行中。也许有一种完全不同的方式来做我想做的事情?

【问题讨论】:

  • 这似乎是PHP。对吗?
  • 尝试使用mysql_fetch_assoc 而不是mysql_fetch_array

标签: php mysql sql html-table


【解决方案1】:

阅读mysql_fetch_array

关于它被弃用的部分很有趣,但您可能想查看result_type 参数并传递MYSQL_ASSOC

有一个等效的(也已弃用的)函数可以在一次调用中执行此操作:

mysql_fetch_assoc

【讨论】:

  • 谢谢劳伦斯。那解决了它。我想也有一种不被弃用的方法来处理这个问题。
猜你喜欢
  • 2021-12-22
  • 1970-01-01
  • 2017-02-07
  • 1970-01-01
  • 2014-10-15
  • 1970-01-01
  • 2023-03-10
  • 2011-06-30
  • 1970-01-01
相关资源
最近更新 更多