Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这个PHP MySQL代码不能正常工作?_Php_Mysql_Database_Arrays - Fatal编程技术网

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

为什么这个PHP MySQL代码不能正常工作?,php,mysql,database,arrays,Php,Mysql,Database,Arrays,这是工作之前,也许有人对代码进行了更改,我无法检测到问题后,很多调试,所以希望有人可以帮助 我有一个html表单,允许用户选择一组选项,然后在表单提交时,将这些选项发布到一个数组中,这个数组工作得非常好。然后我将数组的元素写入MySQL表,这就是问题所在。我的代码以前运行得很好,但现在它很奇怪。由于某种原因,输出混淆了 下面是传递的数组值,然后是数组下面的输出 下面是我将数组值写入MySQL的代码: error_reporting(-1); $arr=$_POST["itemsToAdd"];

这是工作之前,也许有人对代码进行了更改,我无法检测到问题后,很多调试,所以希望有人可以帮助

我有一个html表单,允许用户选择一组选项,然后在表单提交时,将这些选项发布到一个数组中,这个数组工作得非常好。然后我将数组的元素写入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中以正确的顺序编写它们,当我显示它们时,顺序还是混淆了。顺序是Justin、Achau、Chellatamby,但当我从数据库中发出echo时,它的Achau、Chellatamby、Justin

除非您在SELECT语句中特别使用Order BY子句,否则返回行的顺序是不确定的,并且可能会更改。。。。不管你按什么顺序添加记录,这都无关紧要。。。按…使用订单

SELECT * FROM ProdOnCallSetup ORDER BY Email 
(或您想在其上排序的任何列id)


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

我尝试了通过电子邮件进行排序,但它没有执行任何操作,仍然是相同的顺序,我正在自动递增表上的电子邮件列,因此如何使用该列从DB返回?编辑:我明白你的意思,它是根据他们的字母电子邮件名称对他们进行排序的,但我也有自动递增功能。我如何按照我将他们添加到DB>的顺序返回列?在SELECT语句中使用order BY pid(其中pid是你给自动递增列的名称)。。。。这不是你的电子邮件栏,因为那是一个在。。。然后阅读一些关于如何使用MySQL的教程,因为这是绝对的基础。如何检索MySQL表的id以查看是否设置了id,我记得前一段时间auto_increment不支持所有变量类型。我不能100%确定为什么这对我不起作用,但也许我会尝试重新创建我的表,看看是否可以用id解决这个问题。你可以使用方向指示器。通过电子邮件ASC从ProdOnCallSetup订单中选择*;