显示mysql数据时重复列

时间:2016-04-28 02:57:37

标签: php mysql

我使用php从mysql生成一个程式化的表,但由于某种原因,它会创建我的Date和Count的重复列。有人可以帮助弄清楚为什么会发生这种情况吗?谢谢

<?php

include("dbconnect.php");   

$link=Connection();

$result = mysql_query(
                      "SELECT Date, Count
                      FROM testLocation 
                      WHERE Date 
                      BETWEEN '2016-04-10 00:01:11' AND '2016-04-23 00:01:11'"
                      ,$link
                      );


  if($result!==FALSE){
         echo '<table cellpadding="0" cellspacing="0" class="db-table">';
         echo '<tr><th>Date</th><th>Count</th></tr>';
         while($row = mysql_fetch_array($result)) {
               echo '<tr>';
               foreach($row as $key=>$value1){
               echo '<td>', $value1,'</td>';
               }
               echo '<tr>';
         }
         echo '</table><br />';
         mysql_free_result($result);
         mysql_close();
      }
?>

1 个答案:

答案 0 :(得分:0)

首先,请尝试将您的代码更改为MySQLi,现在针对您的问题,您需要知道mysql_fetch_array将返回带关联键和数字键的数组。来自docs

  

返回与获取的行对应的字符串数组,如果没有其他行,则返回 FALSE 。返回数组的类型取决于result_type的定义方式。通过使用 MYSQL_BOTH (默认),您将获得一个包含关联索引和数字索引的数组。使用 MYSQL_ASSOC ,您只能获得关联索引(因为mysql_fetch_assoc()有效),使用 MYSQL_NUM ,您只能获得数字索引(因为mysql_fetch_row()有效)。

因此,为了避免循环中出现重复数据,您需要使用以下三个选项之一:

// The important part here is to set the result type eg: MYSQL_ASSOC or MYSQL_NUM. By defualt it is MYSQL_BOTH and thats your problem right now.
$row = mysql_fetch_array($result, MYSQL_ASSOC | MYSQL_NUM);

// Or this, it will return rows with associative indexes (keys are named after the column), eg: $row['Date']
$row = mysql_fetch_assoc($result); 

// Or this, it will return rows with numeric indexes, eg: $row[0]
$row = mysql_fetch_row($result);