它以前工作过,可能有人对代码进行了更改,经过多次调试后我无法检测到问题所以希望有人可以提供帮助。
我有一个html表单,允许用户选择一组选项,然后在表单提交,POSTS这些选项在一个完美正常的数组。然后我将数组的元素写入MySQL表,这就是问题发生的地方。我的代码工作正常,但现在很奇怪。由于某种原因,输出混乱。
下面是传递的数组值,然后是数组下面的输出。
这是我将数组值写入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
答案 0 :(得分:1)
除非您在SELECT语句中特别使用ORDER BY子句,否则返回行的顺序为 indeterminate 并且可能会更改....无论您添加记录的顺序是什么在,这是无关紧要的...使用ORDER BY ...
SELECT * FROM ProdOnCallSetup ORDER BY Email
(或您要为其订购的任何列ID)
如果您想按照将它们添加到数据库的顺序对它们进行排序,则表格上需要一个自动增量列,并按该列排序