2013-03-07 100 views
-1

我在數據庫表中有兩組4個評級輸入,其中一個的priority_id爲19,另一個的priority_id爲20.如果我在phpMyAdmin下面運行sql查詢,它會返回id主鍵字段的值並按正確的順序列出它們。如果我運行我的php文件並選擇priority_id 19的值,它們將以正確的順序顯示在屏幕上。但是,如果我選擇priority_id的值,則會以奇怪的非理性順序顯示id值。任何人都有想法可能會造成這種情況?我已經嘗試將order by添加到sql查詢中,但這似乎沒有幫助。PHP MySQL查詢以奇怪的順序顯示結果

$input_ids = array(); 

$query = "SELECT * FROM rating_inputs WHERE priority_id = '20'"; 
echo $query . "<br/>"; 

$result = mysql_query($query); 
$z=0; 
while($row=mysql_fetch_assoc($result)){ 
    $input_ids[$z] = $row['id']; 
    echo "input id: " . $input_ids[$z] . "<br/>"; 
    $z=$z+1; 
} 

這些是我的數據庫字段及其數據。值字段此刻爲空。

id | priority_id | category_id |值

53 | 19 | 1 | 
54 | 19 | 4 | 
55 | 19 | 10 | 
56 | 19 | 11 | 
57 | 20 | 1 | 
58 | 20 | 4 | 
59 | 20 | 10 | 
60 | 20 | 11 | 
+0

你能顯示記錄嗎? – 2013-03-07 15:11:35

+0

你確定ORDER BY不起作用嗎? – 2013-03-07 15:13:02

+0

phpmyadmin通常會添加一個命令,嘗試使用「OPTIMIZE TABLE」,有時它會在許多插入/刪除操作後出現異常(也沒有ORDER BY結果以表格順序不是ID)。同時說明您是否有主鍵。運行「EXPLAIN SELECT」查看查詢是否使用了正確的索引。由於某種原因,不推薦使用PDO,mysql_。 – 2013-03-07 15:16:56

回答

2

記錄在數據庫中沒有固有順序。它們的檢索順序對於所有意圖和目的都是隨機的。如果它們以任何特定順序存在,那是因爲它們恰好按照該順序存儲或按順序在索引中遇到。

如果您希望某個特定訂單,請在查詢中使用ORDER BY子句。

+0

我想發佈我的記錄,但我對這個網站還不是很熟悉。我想我必須編輯我的原始文章? – user1864848 2013-03-07 15:23:09

+0

是的,評論是不是發佈大量數據的地方。 – deceze 2013-03-07 15:26:15

+0

我錯了,這個問題甚至發生在phpMyAdmin裏面。我做了一個OPTIMIZE TABLE和一個REPAIR TABLE,都沒有解決問題。 id是主鍵,設置爲auto_increment。 – user1864848 2013-03-07 15:49:12