0

如果我有一个名称数组,并指出如何将这些数据插入到 mysql 中?

名称: 下面提到的结果$_POST['playername']

matt
john
kevin
ryan
anthony
mike
luke
brian
eli
zach
derrick
kobe

积分: 下面提到的结果$_POST['points']

3
12
0
27
0
0
11
0
5
8
0
1

这些点与名称相匹配。

在我的代码中,我有一个 foreach 名称运行一个包含每个名称的统计信息的块。该块具有玩家姓名和捕获玩家得分的输入。

<li class="name">
<span><?php echo $player ?></span>
<input type="hidden" name="playername[]" value="<?php echo $player ?>" />
</li>

<li class="points">
<span>0</span>
<input type="hidden" name="points[]" value="0" />
</li>

所以将有相同数量的$_POST['playername']相同$_POST['points']顺序。

如何更新具有点列和名称列的表?

 $player = $_POST['playername'];
 $points = $_POST['points'];

"UPDATE stats SET points = $points WHERE player = '$player'"

我需要运行一个 foreach 循环,但如果我执行与上述 foreach 名称相同的循环,则循环$playeror$points循环正确的次数,但只有一个值。

所以我不确定如何在array_combine这里做,或者我是否应该使用不同的方法,我知道这很容易,但我无法弄清楚。很确定我需要循环$_POST变量,但我想我还需要将它们组合起来。我都搞砸了,所以要弄清楚这一点,只需将自己作为开发人员,你需要更新points表格以匹配正确的player桌子

编辑: 感谢下面的海报,我现在可以更好地使用这两个阵列。

但是为了扩展这个问题,当我使用变量来更新它不起作用的表时,这很奇怪。当我手动输入它时,它$sqlupdate = "UPDATE stats SET points = 22 WHERE player = 'matt'";知道为什么它不能与变量一起使用吗?

4

4 回答 4

1

关于什么:

<?
  for( $i = 0; $i<count($player);$i++ ){
      $sql = "UPDATE stats SET points = $points[$i] WHERE player = '$player[$i]'";
      //execute sql here
  }
?>
于 2013-10-30T04:29:21.823 回答
1
$player = $_POST['playername'];
$points = $_POST['points'];

foreach($player as $key=>$value)
{
    $sql="UPDATE stats SET points = $points[$key] WHERE player = '".$value."'";// in place of $value you may also use $player[$key]
    mysql_query($sql);
}
于 2013-10-30T04:34:50.517 回答
1

只是更改了 Jorge 代码位,

<?php

 $player = $_POST['playername'];
 $playerCount =count($_POST['playername']); // one time count check

 for( $i = 0; $i<$playerCount;$i++ ){
        $PlayerVal = trim($player[$i]); // empty value check
         if($PlayerVal!=""){
              $sql = "UPDATE stats SET points = "'.$points[$i]'" WHERE player = '".$player[$i]."' ";
           //execute sql here  
         }
   }
?>
于 2013-10-30T04:35:42.110 回答
1
for( $i = 0; $i<count($_POST);$i++ ){
    $sql = 'UPDATE stats SET points = '.$_POST["points"][$i].' WHERE player = '.$_POST["playername"][$i];
    //execute sql
}
于 2013-10-30T04:33:18.963 回答