PHP避免循环中查询,php – 停止sql查询更新每个循环中的所有列

关于这个问题已经提出了很多问题.我已经了解了stackoverflow上给出的一些解决方案,但它们似乎都没有工作.我有一个带有foreach循环的表单,我正在尝试使用其唯一值提交“所选表单”,然后使用该值运行SQL查询.

问题是,提交的文本区域的name属性.首先,查询只会更新循环中的最后一列.然后我尝试了另一种方法.例如,将name属性更改为“someattribute []”.

现在,正在更新查询中的所有选定列.

form.php的

...................

foreach($stmt as $obj){

$id = $obj['id'];

$likes = $obj['like1'];

echo '

';

echo '';

echo '';

echo '

value="som" height="15" style="float:right;position:relative;margin-

right:290px;"/>

'.$likes.'
';

echo '

’;

}

?>

query.php

if (isset($_POST['like'])){

$com_id = $_POST['lkcv'];

for ($i=0; $i

# query into db table to know current voting score

$query = mysql_query("SELECT like1 FROM comment WHERE id = '$com_id[$i]'");

# increase or dicrease voting score

if ($data = mysql_fetch_array($query)) {

$like = ++$data['like1'];

# update new voting score

$query2 = mysql_query("UPDATE comment SET like1 = '{$like}' WHERE id = '$com_id[$i]'");

}

}

}

?>

query.php [已解决]

if( isset( $_POST['lkcv'] ) && is_array( $_POST['lkcv'] ) )

{

$idArray = array();

foreach( $_POST['lkcv'] as $value )

{

$idArray[] = intval( $value );

}

$db->query( "UPDATE comment SET like1 = like1 + 1 WHERE id IN (".implode(

',', $idArray ).")" );

}

?>

注意:一旦我开始工作,我将更新我的查询以使用PDO预处理语句.谢谢你的帮助.

最佳答案 我会在这样的一个查询中执行此操作:

if( isset( $_POST['lkcv'] ) && is_array( $_POST['lkcv'] ) )

{

$idArray = array();

foreach( $_POST['lkcv'] as $value )

{

$idArray[] = intval( $value );

}

$db->query( "UPDATE comment SET like1 = like + 1 WHERE id IN (".implode( ',', $idArray ).")" );

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值