使用PHP的大容量SQL行条目
我正在尝试为那些有团队队长特权的人做一个大量的条目,我正在为工作开发一个午餐步行站点 船长将检查是否将用户包括在查询中,输入该用户的英里数,然后提交查询。服务器将这些值推送到数组中,并使用for循环在表单中循环,并将数据插入sql数据库 当您选中所有成员或仅选中列表中的第一个成员时,下面的代码起作用 但是,如果不选中第一个成员,它将根本不会继续运行查询,甚至在查询失败时也不会执行操作。在我看来,错误发生在尝试运行insert查询之前 有人能告诉我我做错了什么吗?此外,还欢迎提供有关一般编码礼仪的其他说明。我是自学成才的,所以我在这方面不是最好的,我总是欢迎一些技巧和窍门来提高我在这方面的技能 谢谢使用PHP的大容量SQL行条目,php,html,mysql,sql,sql-server,Php,Html,Mysql,Sql,Sql Server,我正在尝试为那些有团队队长特权的人做一个大量的条目,我正在为工作开发一个午餐步行站点 船长将检查是否将用户包括在查询中,输入该用户的英里数,然后提交查询。服务器将这些值推送到数组中,并使用for循环在表单中循环,并将数据插入sql数据库 当您选中所有成员或仅选中列表中的第一个成员时,下面的代码起作用 但是,如果不选中第一个成员,它将根本不会继续运行查询,甚至在查询失败时也不会执行操作。在我看来,错误发生在尝试运行insert查询之前 有人能告诉我我做错了什么吗?此外,还欢迎提供有关一般编码礼仪的
<?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>';
}
}
}
}
}
?>
运行查询时,添加或删除错误;最后,像这样:
$Result_Add_Miles = mysql_query($SQL_Add_Miles) or die(mysql_error());
这至少会告诉您您的错误是什么。我可以通过将“英里”窗体的值设置为0,然后删除“包含”复选框来找出错误 而不是使用“包括”复选框进行检查。我只是确保“英里”字段大于0。感觉就像是临时的创可贴。但对我现在的目的来说应该有用
我还将该字段设置为数字字段而不是文本,并将其设置为必填项 关于StackOverflow的注意事项:一般来说,最好询问您的具体问题,即如果第一个人没有自己检查,为什么它不起作用,而不是问这个问题并说哦,顺便说一句,欢迎提供编码提示。如果您希望有人检查您的代码并告诉您如何改进代码,这就是我们的目的。您还应该提供一个示例,这样我们就可以更容易地看到问题,而不是拖网式地浏览这么多代码。是的,这是我有史以来的第一个问题,感谢关于代码审查的建议说明:我们要求代码在发布代码之前按预期工作。