0

填写表格 i$ 后,尝试在 SQL 代码中为多个玩家执行循环。

网上好像找不到答案。感谢您为我提供的任何帮助。

<?php
$con = mysql_connect("localhost","username","password");
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}    
mysql_select_db("mbbcom1_rfhl", $con);

for ($i=1; $i<=6; $i++)
{       
    $sql="UPDATE `mbbcom1_rfhl`.`_statbu`
        SET gp= gp + '$_POST[gp$i]', g= g + '$_POST[g$i]', a= a + '$_POST[a$i]', shot=    shot + '$_POST[s$i]', pm= pm + '$_POST[pm$i]', ppg= ppg + '$_POST[ppg$i]', shg= shg + '$_POST[shg$i]', bs= bs + '$_POST[blk$i]', gwg= gwg + '$_POST[gwg$i]', sog= sog + '$_POST[sog$i]', soa= soa + '$_POST[soa$i]', pim= pim + '$_POST[pim$i]' WHERE `season` =9 AND `_statbu`.`player_id` = $i ORDER BY `_statbu`.`player_id` ASC";
}

if (!mysql_query($sql,$con))
{
    die('Error: ' . mysql_error());
}
mysql_close($con)
?> 
4

3 回答 3

2

考虑到您实际上并没有提到问题所在,我将假设您的数据库实际上也没有按照您想要的方式进行更新。我认为这是因为在你的 for 循环中你实际上并没有执行你的 sql 语句。如果您仔细观察,您所做的就是生成 sql 字符串。您需要将以下语句放在您的 for 循环中,而不是像现在这样放在它之外。

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
于 2012-10-22T19:42:26.630 回答
0

当您在代码中添加一些不错的缩进时,很明显您是在 for 循环之外运行查询,因此它只能运行最后一次更新。

于 2012-10-22T19:42:09.987 回答
0

您的更新查询是错误的,它不能有一个订单。您需要在循环内执行查询:

for ($i=1; $i<=6; $i++)
{       
    $sql = "UPDATE `mbbcom1_rfhl`.`_statbu`
    SET gp= gp + '$_POST[gp$i]', g= g + '$_POST[g$i]', a= a + '$_POST[a$i]', shot= shot + '$_POST[s$i]', pm= pm + '$_POST[pm$i]', ppg= ppg + '$_POST[ppg$i]', shg= shg + '$_POST[shg$i]', bs= bs + '$_POST[blk$i]', gwg= gwg + '$_POST[gwg$i]', sog= sog + '$_POST[sog$i]', soa= soa + '$_POST[soa$i]', pim= pim + '$_POST[pim$i]' 
    WHERE `season` =9 AND `_statbu`.`player_id` = $i"; 
    // ORDER BY `_statbu`.`player_id` ASC";


  if (!mysql_query($sql,$con))
  {
      die('Error: ' . mysql_error());
  }
}

此外:

  • 您的代码对 SQL 注入开放
  • 您正在使用已弃用的 mysql_* 函数
于 2012-10-22T19:43:12.197 回答