我想優化這個支票,我有。我需要檢查表中的行,看看是否有任何行匹配了Earned和Maxearned值(只有位置1,2,3,4的行)。如果他們這樣做,我需要從該行中獲取獎勵,將其寫入名爲bank的另一個表中,並從表中刪除名爲lines的行。這是我有:PHP優化支票
$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'";
}
我試圖避免運行一個不同的查詢($ sql6,之後的一段時間)搶掙列的值。有沒有辦法做到這一點?我已經嘗試了一切,這幾乎是我想出的最好的。
我知道我沒有運行'mysql_query($ sql4,5,6,7)'這只是一個dev版本 –
@ user2864740實際上,沒有這個,他們會獲得無限的金錢instea d他們應該如何^^ –
贊@ user2864740表示,發佈你的模式。然後閱讀此:http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – Cfreak