PHP优化检查
我正在努力优化我的检查。我需要检查名为lines的表,看看是否有任何行具有匹配的Earned和Maxearned值(仅具有位置1,2,3,4的行)。如果他们这样做了,我需要从该行中获取收入,将其写入另一个名为bank的表中,并从名为lines的表中删除该行。这就是我所拥有的:PHP优化检查,php,mysql,Php,Mysql,我正在努力优化我的检查。我需要检查名为lines的表,看看是否有任何行具有匹配的Earned和Maxearned值(仅具有位置1,2,3,4的行)。如果他们这样做了,我需要从该行中获取收入,将其写入另一个名为bank的表中,并从名为lines的表中删除该行。这就是我所拥有的: $sql3 = "SELECT * FROM `lines` WHERE Position <= 4 AND Linenum = '$linenum' AND Earned = Maxearned"; $result
$sql3 = "SELECT * FROM `lines` WHERE Position <= 4 AND Linenum = '$linenum' AND Earned = Maxearned";
$result3 = mysql_query($sql3);
if (mysql_num_rows($result3) != 0)
{
while ($row3 = mysql_fetch_array($result3))
{
$users[] = $row3['User'];
}
foreach ($users as $user)
{
$sql6 = "SELECT * FROM `lines` WHERE Position <= 4 AND Linenum = '$linenum' AND Earned = Maxearned AND User = '$user'";
$result4 = mysql_query($sql6);
while ($row4 = mysql_fetch_array($result4))
{
$earned = $row4['Earned'];
}
$today = date("Y-m-d");
$method = "Queue money";
$type = "Earned";
$status = "Completed";
$sql4 = "INSERT INTO bank (User,Amount,Method,Transdate,Type,Status) VALUES ('$user','$earned','$method','$today','$type','$status')";
$sql5 = "DELETE FROM `lines` WHERE Position <= 4 AND Linenum = '$linenum' AND Earned = Maxearned AND User = '$user'";
}
$sql7 = "UPDATE `lines` SET Position = Position - 1 WHERE Linenum = '$linenum'";
}
$sql3=“从“行”中选择*位置您可以执行以下操作:
mysql_query("SET AUTOCOMMIT=0");
mysql_query("START TRANSACTION");
$sql3 = "SELECT * FROM `lines` WHERE Position <= 4 AND Linenum = '$linenum' AND Earned = Maxearned";
$result3 = mysql_query($sql3);
if (mysql_num_rows($result3) != 0)
{
while ($row3 = mysql_fetch_array($result3))
{
$users[] = $row3['User'];
}
$users_to_compare = "(" . rtrim(implode(",", $users),',') . ")";
$sql4 = "SELECT * FROM `lines` WHERE Position <= 4 AND Linenum = '$linenum' AND Earned = Maxearned AND User IN $users_to_compare";
$result4 = mysql_query($sql4);
while ($row4 = mysql_fetch_array($result4))
{
$earned = $row4['Earned'];
$today = date("Y-m-d");
$method = "Queue money";
$type = "Earned";
$status = "Completed";
$sql5 = "INSERT INTO bank (User,Amount,Method,Transdate,Type,Status) VALUES ('{$row4['User']}','$earned','$method','$today','$type','$status')";
$result5 = mysql_query($sql5);
}
$sql6 = "DELETE FROM `lines` WHERE Position <= 4 AND Linenum = '$linenum' AND Earned = Maxearned AND User IN $users_to_compare";
$result6 = mysql_query($sql6);
$sql7 = "UPDATE `lines` SET Position = Position - 1 WHERE Linenum = '$linenum'";
$result7 = mysql_query($sql7);
if ($result5 && $result5 && $result7) {
mysql_query("COMMIT");
} else {
mysql_query("ROLLBACK");
}
}
mysql\u查询(“设置自动提交=0”);
mysql_查询(“启动事务”);
$sql3=“从‘行’中选择*我知道我没有运行的位置mysql\u查询($sql4,5,6,7)
这只是一个开发version@user2864740实际上,如果没有这个,他们将获得无限的金钱,而不是像@user2864740所说的,发布你的模式。然后读这个:@user2864740好的,有4行(每行的价格不同)。当您在line中“购买”一个位置时,您可以使用Linenum(1-4)和position输入名为lines的表格。如果那里有50个人,你的位置是51。您可以赚取最多2个条目的价格。每当有人进入时,我需要检查有多少人已经获得了允许的收入,然后将他们从队列中移除,并让其他人获得一个职位(每行只有前4人可以获得现金)。但在删除它们之前,我必须将它们的事务记录在名为bank的表中。听起来不错吧?codereview.stackexchange.com是建议改进工作代码的首选网站。@ta.speot.com会很快对其进行编辑,但命名需要改进。。我只是关注OP的orderCheers@Deepak,我知道他们是,我只是被雇来做一些修复工作,而不是升级到,因此mysql=)