2011-12-22 111 views
0

這是工作之前,也許有人對代碼進行了更改,經過多次調試後我無法檢測到問題,因此希望有人能夠提供幫助。爲什麼這個PHP-MySQL代碼無法正常工作?

我有一個HTML表單,讓用戶選擇一組選項,然後在表單提交,POSTS這些選項在一個完美的數組。然後我將數組的元素寫入MySQL表,這就是問題發生的地方。我的代碼之前工作正常,但現在它的所有奇怪。出於某種原因,輸出混淆了。

下面是傳遞的數組值,然後是數組下的輸出。

enter image description here

這是我的代碼寫入數組值到MySQL:

error_reporting(-1); 
$arr=$_POST["itemsToAdd"]; 

$cal=$_POST["calendar"]; 

print_r($arr); 

// Make a MySQL Connection 


//empty table first to remove any previous old on-calls stored. 
$query = "truncate table ProdOnCallSetup"; 
if(mysql_query($query)){ 
} 
else{ 
} 




foreach ($arr as &$value) { 

// Insert a row of information into the table "ProdOnCallSetup" 
mysql_query("INSERT INTO ProdOnCallSetup 
(Email) VALUES('$value') ") 
or die(mysql_error()); 

} 

這裏是代碼給輸出或在MySQL顯示行:

<ol class=」list_style」> 

    <?php 
//make MySQL connection 

    $query = "SELECT * FROM ProdOnCallSetup"; 

    $result = mysql_query($query) or die(mysql_error()); 


    while($row = mysql_fetch_array($result)){ 
     echo "<li>".$row['Email']."</li>"; 
     echo "<br />"; 
    } 


    ?> 

</ol> 

見這裏的問題?即使我在MySQL中按照正確的順序編寫它們,但在顯示它們時,順序會混合起來。秩序是賈斯汀,Achau,Chellatamby但是當我回音了從DB其Achau,Chellatamby,賈斯汀

回答

1

除非你明確你的SELECT語句中使用ORDER BY子句,在返回行的順序是不確定並可能改變....這不要緊,你在加什麼順序的記錄,這是無關緊要的......使用ORDER BY ...

SELECT * FROM ProdOnCallSetup ORDER BY Email 

(或任何列ID要在命令他們)

如果您想按順序將它們添加到數據庫中,您需要一個自動增量並在該列的訂單

+0

我嘗試通過電子郵件的順序,它沒有做任何事情,仍然是相同的順序,我自動增加表上的電子郵件列,所以我怎麼會使用它返回它從數據庫? 編輯:我明白你的意思是基於他們的alphabetetical電子郵件名稱命令他們,但我也有自動增量,我如何返回列中的順序,我將它們添加到DB>? – Bulvak 2011-12-22 15:22:40

+0

在你的SELECT語句中使用ORDER BY pid(其中pid是你給自動增量列的名稱)....它不是你的電子郵件列,因爲這是電子郵件地址在...的列然後閱讀關於如何使用MySQL的一些教程,因爲這是絕對的基礎 – 2011-12-22 15:24:58

+0

我怎樣才能檢索我的MySQL表的ID,看看我是否有一個ID設置,我記得一會兒後面auto_increment不支持所有變量類型.. – Bulvak 2011-12-22 15:33:07

相關問題