duanpie2414 2014-10-04 17:19
浏览 97
已采纳

检查php数组的foreach循环中是否存在mysql行

I have an array of items that I am looping over and checking if the value already exists in the database, if it does I would like to update it, if it does not I would like to create a new entry. The first item in the array is seen and returns true, but anything after the first one returns 0 even if I know for a fact that it is in the database with the correct item_name and ticket_id.

I have tried researching before asking, but am stumped at this point. Thanks for any help in advance.

if($func == 'edit') {

        foreach ($addItem as $key => $value) {
            if (empty($key) || $key=='amount_paid') {
    continue;
  }
            $ticket_items = mysql_query("SELECT * FROM ticket_items WHERE ticket_id = '$ticket_id' AND item_name = '$key'");
            if (mysql_num_rows($ticket_items)) {
                print 'Updated '. $key ."
";
                mysql_query("UPDATE ticket_items set item_name='$key', item_price='$value' WHERE ticket_id='$ticket_id'");
            } else {
                print 'Created '. $key ."
";
            mysql_query("INSERT into ticket_items (ticket_id, item_name, item_price) VALUES ('$ticket_id', '$key', '$value')");     
            }
        }
}
  • 写回答

2条回答 默认 最新

  • du9843 2014-10-04 17:30
    关注

    Notice that, in your UPDATE statement, you are updating every row that has the same $ticket_id, regardless of the item_name. It should be:

    UPDATE ticket_items set item_name='$key', item_price='$value' WHERE ticket_id='$ticket_id' AND item_name='$key';
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?