为什么这个PHP-MySQL代码不能正常工作?

时间:2011-12-22 15:11:31

标签: php mysql database arrays

它以前工作过,可能有人对代码进行了更改,经过多次调试后我无法检测到问题所以希望有人可以提供帮助。

我有一个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,Justin

1 个答案:

答案 0 :(得分:1)

除非您在SELECT语句中特别使用ORDER BY子句,否则返回行的顺序为 indeterminate 并且可能会更改....无论您添加记录的顺序是什么在,这是无关紧要的...使用ORDER BY ...

SELECT * FROM ProdOnCallSetup ORDER BY Email 

(或您要为其订购的任何列ID)

如果您想按照将它们添加到数据库的顺序对它们进行排序,则表格上需要一个自动增量列,并按该列排序