dtjpz48440
dtjpz48440
2016-01-16 07:35

如何使用PHP在这个“foreach”循环中多次更新我的数据库?

This is in a PHP web page.

I have a link that the user lands on example: www.example.com/update?attend=1&code[]=4321&code[]=5642&code[]=1842 I need it to update: foreach code attend=1.

My code so far:

...database connect information...

$codes = $_GET['code'];
$invitecode = $_GET['invitecode'];
foreach ($codes as $code) {
print $code;
?><br><?php
$sql = "UPDATE guests SET attend='$isattend' WHERE invitecode=$code";
}

...database close and result...

Renders as:

4321
5642
1842
Record updated successfully 

When I check the database only the last value 1842 is set attend=1. Prints correct but updates only one?

Does anyone understand what I am doing wrong here?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • duancong6937 duancong6937 5年前

    You can execute the each sql in foreach but it is better to use IN clause.so you code hit to database only one time.

    点赞 评论 复制链接分享
  • duanfan1965 duanfan1965 5年前

    if i understand right, so you can change it to:

    $codes = $_GET['code'];
    $invitecode = $_GET['invitecode'];
    $sql = "UPDATE guests SET attend='$isattend' WHERE invitecode IN (";
    $sep = "";
    foreach ($codes as $code) {
    print $code;
    ?><br><?php
    $sql = $sql . $sep .$code; 
    $sep = ",";
    }
    $sql = $sql . ")"
    

    This will generate UPDATE guests SET attend='$isattend' WHERE invitecode IN (4321,5642,1842)

    Please let me know if it works for you

    点赞 评论 复制链接分享