如果我有一个名字数组,并指出如何将这些数据插入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名称相同的循环,那么循环$player
或$points
循环正确的次数但只有一个值。
所以我不确定如何在这里做array_combine
或者如果我应该使用不同的方法我知道它很容易,但我无法弄明白。我很确定我需要循环$_POST
变量,但我想我也需要将它们结合起来。我全都搞砸了,所以要弄清楚这只是把自己当作开发者,你需要更新{{ 1}}表以匹配正确的points
表
编辑: 感谢下面的海报,我现在可以更好地使用这两个阵列了。
但是为了扩展这个问题,当我使用变量来更新它不起作用的表时,这很奇怪。当我手动输入它时,它会player
知道为什么它不能使用变量?
答案 0 :(得分:1)
怎么样:
<?
for( $i = 0; $i<count($player);$i++ ){
$sql = "UPDATE stats SET points = $points[$i] WHERE player = '$player[$i]'";
//execute sql here
}
?>
答案 1 :(得分:1)
for( $i = 0; $i<count($_POST);$i++ ){
$sql = 'UPDATE stats SET points = '.$_POST["points"][$i].' WHERE player = '.$_POST["playername"][$i];
//execute sql
}
答案 2 :(得分: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);
}
答案 3 :(得分: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
}
}
?>