2016-11-08 32 views
-3

當通過PHP從MySQL中檢索數據時,它會檢索數據庫中不存在的額外行。爲什麼?MySQL查詢顯然返回額外的行

<?php 

$con = mysqli_connect('host', 'username', 'password', 'database'); 
$sql = $con->query("SELECT * FROM info"); 

while($row = $sql->fetch_array()) { 
    $image = $row['image_path']; 
    $caption = $row['caption']; 
    $id = $row['id']; 
    ?> 
    <div class="col-md-4"> 
     <div class="thumbnail"> 
      <img src=<?php echo $image;?>> 
      <div class="caption text-center"><h3><?php echo $caption;?></h3></div> 
      <button class="btn btn-default" onclick="modal(<?php echo $id;?>)">View</button> 
     </div> 
    </div><!-- Column END --> 
    <?php 
    } 
?> 
+0

要解釋草莓,參見http://meta.sta ckoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query – Shadow

+0

在使用你的html代碼的同時循環,並且你正在返回一條記錄或多條記錄?@OmkarPathak –

+0

返回多個,但最後一條記錄(空白記錄)得到加起來@parthmahida –

回答

2

它,因爲你正在使用

$row = $sql->fetch_array();

默認爲

$row = $sql->fetch_array(MYSQLI_BOTH);

並返回結果,因爲它包含在MYSQLI_BOTH

爲此,您可以修復它的MYSQLI_ROW參數的設定結束NULL值:

while ($row = $sql->fetch_array(MYSQLI_ASSOC)) {

+0

工作!非常感謝@ mike510a –

+0

np source是http://php.net/manual/en/mysqli-result.fetch-array.php 對於任何人想知道 – mike510a