dplo59755 2016-04-28 02:57
浏览 35
已采纳

显示mysql数据时重复列

I am generating a stylized table from mysql with php but for some reason it creates duplicate columns of my Date and Count. Can someone help figure out why this is happening to me? Thank you

<?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条回答 默认 最新

  • dsgtew3241 2016-04-28 03:11
    关注

    First off all, please try to change your code to MySQLi, now for your problem you need to know that mysql_fetch_array will return an array with associative and numeric keys. From the docs:

    Returns an array of strings that corresponds to the fetched row, or FALSE if there are no more rows. The type of returned array depends on how result_type is defined. By using MYSQL_BOTH (default), you'll get an array with both associative and number indices. Using MYSQL_ASSOC, you only get associative indices (as mysql_fetch_assoc() works), using MYSQL_NUM, you only get number indices (as mysql_fetch_row() works).

    So to avoid duplicate data in your loop you need to use either of these three options:

    // 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);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?