使用PHP批量SQL行条目

时间:2015-02-13 17:29:23

标签: php html mysql sql sql-server

我正在努力为拥有团队成员特权的人们提供批量入口,为我正在开发工作的午餐步行网站。

船长将检查用户是否要包含在查询中,输入该用户的里程,并提交查询。服务器将这些值推送到数组中,并使用for循环遍历表单并将数据插入到sql数据库中。

当您检查所有成员或列表中的第一个成员时,以下代码有效。

但是,如果您取消选中第一个成员,则根本不会继续运行查询,如果查询失败,甚至不会执行操作。在我看来,错误发生在尝试运行插入查询之前。

有谁能告诉我我做错了什么?此外,欢迎其他关于一般编码礼仪的说明。我是自学成才,所以我不是最好的,并且总是欢迎提示和技巧,让我的技能更好。

由于

   <?php
                    if($_SERVER['REQUEST_METHOD'] != 'POST')
                        {

                        $SQL_Get_Team = "SELECT * FROM User_Account WHERE User_Account_Team_Key = '".$_SESSION['Team_ID']."'";
                        $Result_Get_Team = mysql_query($SQL_Get_Team);

                        echo'<form class="form-signin" role="form" data-toggle="validator" method="post" action="">';
                        echo'<table class="table table-striped" width="100%">
                            <tr>
                                <th>ID</th>
                                <th>Name</th>
                                <th>Miles</th>
                                <th>Include</th>
                            </tr>';
                        while($Team = mysql_fetch_assoc($Result_Get_Team))
                            {
                            echo '<tr>
                                    <td><input type="hidden" name="key[]" value="'.$Team['User_Account_Key'].'">'.$Team['User_Account_Key'].'</td>
                                    <td>'.$Team['User_Account_Name'].'</td>
                                    <td><input name="Miles[]" type="text" class="form-control" placeholder="Miles" autofocus></td>
                                    <td style=text-align:"center;"><input type="checkbox" name="include[]" value="Yes"></td>
                                  </tr>';
                            }
                        echo'   </table>
                                <br>
                                <br>
                                <button class="btn btn-lg btn-primary btn-block" type="submit">Add Miles</button>
                            </form>';
                        }

                    else
                        {

                            $key = $_POST["key"];
                            $Miles = $_POST["Miles"];
                            $include = $_POST["include"];
                            $length = count($key);
                            for($x=0;$x<$length;$x++)
                                {
                                if($include[$x] != 'Yes')
                                    {

                                    }
                                else
                                    {
                                    if($Miles[$x] == 0)
                                        {

                                        }
                                    else
                                        {
                                        echo 'User: '.$key[$x] . ' Miles: '.$Miles[$x]. '<br/>';
                                        $SQL_Add_Miles = 'INSERT INTO Miles(Miles_User_Key, Miles_Team_Key, Miles_Amount, Miles_Date)
                                                              VALUES("' . mysql_real_escape_string($key[$x]) . '",
                                                                     "' . mysql_real_escape_string($_SESSION['Team_ID']) . '",
                                                                     "' . mysql_real_escape_string($Miles[$x]) . '",
                                                                     "'.date("Y-m-d").'"
                                                                    )';
                                        $Result_Add_Miles = mysql_query($SQL_Add_Miles);

                                        if(!$Result_Add_Miles)
                                            {
                                                echo '<div style="text-align: left;" class="page-wrap">An error occured while updating account. Please try again later.<br /><br />' . mysql_error(). '</div>';
                                            }
                                        else
                                            {
                                                echo '<div style="text-align: left;" class="page-wrap">Updated account.</div>';
                                            }
                                        }
                                    }
                                }
                        }   
                      ?>

2 个答案:

答案 0 :(得分:0)

运行查询时,将or die(mysql_error());添加到最后,如下所示:

$Result_Add_Miles = mysql_query($SQL_Add_Miles) or die(mysql_error());

这至少会告诉你你的错误是什么。

答案 1 :(得分:0)

我能够通过将里程表格设置为值0并删除包含复选框来解决这个问题。

而不是使用include复选框来检查。我只是确保里程字段大于0.这感觉就像一个临时的创可贴..但应该适用于我目前的目的。

我还将该字段设为数字字段而不是文本,并使其成为必填项。