我正在努力为拥有团队成员特权的人们提供批量入口,为我正在开发工作的午餐步行网站。
船长将检查用户是否要包含在查询中,输入该用户的里程,并提交查询。服务器将这些值推送到数组中,并使用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>';
}
}
}
}
}
?>
答案 0 :(得分:0)
运行查询时,将or die(mysql_error());
添加到最后,如下所示:
$Result_Add_Miles = mysql_query($SQL_Add_Miles) or die(mysql_error());
这至少会告诉你你的错误是什么。
答案 1 :(得分:0)
我能够通过将里程表格设置为值0并删除包含复选框来解决这个问题。
而不是使用include复选框来检查。我只是确保里程字段大于0.这感觉就像一个临时的创可贴..但应该适用于我目前的目的。
我还将该字段设为数字字段而不是文本,并使其成为必填项。