2016-09-21 94 views
0

我已經選擇了mysql的整個表格,裏面有售票的記錄。 當我用foreach將它們寫出來時,它們從最上面售出的票到最底下最舊的票都正確顯示。 問題是ID不好看。在啓動之前,我已經完成了很多測試購買,並且ID號從現在的50開始。 我想保留它,因爲它是現在,但只記錄正常數字從1的記錄。問題是,最高的數字必須在頂部,因爲最新的記錄是在頂部。請問有人能告訴我如何做到這一點?對數組行進行編號

+0

請讓我知道如果任何的以上不夠清楚 – divHelper11

+0

您必須通過ID查詢進行DESC並使用新生成的變量顯示序列號。 –

+0

你想重置ID從1開始? – naththedeveloper

回答

1

當你while循環,你必須創建開始循環前一個變量,在環1 increatement它並把它作爲行號:)使用

$sql ="SELECT * FROM tbl_purchases ORDER BY id DESC"; 
if ($result = $link->query($sql)) { 
    echo "<table border='1'>"; 
    $line_counter=mysqli_num_rows($result); 
    while($row = mysqli_fetch_assoc($result)) { 
     echo "<tr>". 
       "<td>{$line_counter}</td/>". 
       "<td>{$row['id']}</td/>". 
       "<td>{$row['name']}</td>". 
      "</tr>"; 
     $line_counter--; 
    } 
    echo "</table>"; 
} 
+0

是的,但數字將從列表頂部的1開始,並且將會增加到底部。但最上面的一排是最新的購買,所以它必須有最大的數量。這是很難對我的大腦哈哈 – divHelper11

+0

我有修改答案:) –

+0

哦,我不知道什麼是最大的ID號碼,但我可以計數行,並減少與每個循環。這太棒了哈哈。謝謝 – divHelper11

1

在使用PHP

$sql ="SELECT * FROM tbl_purchases ORDER BY id DESC"; 
if ($result = $link->query($sql)) { 
    $index = mysqli_num_rows($result); 
    echo "<table border='1'>"; 
    while($row = mysqli_fetch_assoc($result)) { 
     echo "<tr>". 
       "<td>{$index}</td/>". 
       "<td>{$row['id']}</td/>". 
       "<td>{$row['name']}</td>". 
      "</tr>"; 
     $index--; 
    } 
    echo "</table>"; 
} 

爲升序索引

$sql ="SELECT * FROM tbl_purchases ORDER BY id DESC"; 
    if ($result = $link->query($sql)) { 
     $index = 1; 
     echo "<table border='1'>"; 
     while($row = mysqli_fetch_assoc($result)) { 
      echo "<tr>". 
        "<td>{$index}</td/>". 
        "<td>{$row['id']}</td/>". 
        "<td>{$row['name']}</td>". 
       "</tr>"; 
      $index++; 
     } 
     echo "</table>"; 
    } 

==================

降序順序使用定製索引顯示

要重新在DB自動增量列(從1重新開始)

對於MyISAM

ALTER TABLE tbl_purchases AUTO_INCREMENT = 1; 

對於INNO DB

SET @num := 0; 
UPDATE tbl_purchases SET id = @num := (@num+1); 
ALTER TABLE tbl_purchases AUTO_INCREMENT =1; 
1

通常,當你從數據庫中,ID列通常是在自動遞增獲取是不可靠的,所以取時,你應該運行你自己自動遞增。即

<?php foreach($rows as $index => $row): ?> 
    <table> 
     <td><?php echo $index + 1 ?></td>