Foreach循环更新sql

时间:2018-04-09 10:36:02

标签: php mysql

我想要一个循环,回应一些足球比赛,我的用户对它们下注,然后改变投注的可能性。 我的数据库中有两个表:

vm_kampe这是匹配res的结果:

|id |hhold   |uhold   |res  |
|1  |Rusland |Saudi   |NULL |
|2  |Egypten |Uruguay |NULL |
... and so on

vm_kampe,这是用户下注:

|id |resu |
|1  |2-1  |
|2  |1-3  |
... and so on.

我的更新网站是这样的:

SELECT * FROM vm_kampe k JOIN vm_207 u ON k.id = u.id
...
foreach($results as $row){

echo '<div class="vm_kupon_row">    
<div class="vm_id"><input type="hidden" name="kampids[]" value="'.$row->id.'"></div>    
<div class="vm_kampe">'.$row->hhold.' - '.$row->uhold.'</div>
<div class="vm_result"><input class="vm_resultat" type="text" name="resultats['.$row->id.']" placeholder="X-X" value="'.$row->resu.'"></div>
<input type="submit" class="godkend-vm-kupon" name="submit['.$row->id.']" value="Godkend">

我的POST网站是这样的:

$res = $mysqli->real_escape_string($_POST['resultats']);
$id = $mysqli->real_escape_string($_POST['kampids']);
FOREACH ($_POST as $p) {    
$gid = $p['id'];    
$result = $p['res'];    
$sql = "UPDATE vm_207 SET resu = '$result' WHERE id = '$gid'";    
};

但如果我尝试编辑下注并按下提交,那么下注将与之前保持一致。我想要的是让我能够更新每场比赛。请帮助:)

更新 我只是在邮政编码中尝试了这个:

$id = $_POST['kampids'];
$res = $_POST['resultats'];
foreach ( $id as $key => $k) {
print "The match is " .$k. " and the result is " .$res[$key];
};

我尝试在第一场比赛中写出2-1,并且打印出来了:

  

匹配为1,结果为2-1   比赛是......

所以我可以看到,该功能有效,所以现在我只需要它来更新表..

1 个答案:

答案 0 :(得分:0)

在隐藏字段中,您不会像使用其他输入一样静态设置索引编号。

<div class="vm_id"><input type="hidden" name="kampids['.$row->id.']" value="'.$row->id.'"></div>    

我认为这个问题/答案应该有所帮助。

How to get form input array into PHP array