0

我可以将两个数组列表 android 发送到 php

                      [p,q,r,s,t,u](old menuname)
                      [a,b,c.d,e.f](new menunames)

我在该表中有一个测试表,其中包含一列菜单名称,它会正确更新。现在我添加另一列作为 menuimage 我可以将 menuimages(blob) 插入 mysql 数据库中的 menuimage 列。现在我要执行更新菜单名称意味着它只更新第一行。剩余的行不更新。

      i try this code
      <?php
    $old_menu_names=explode(',',preg_replace('/^.*\
    [(.*)\].*$/','$1',trim($_POST['menuname'], '[]'))); 

    $new_menu_names=explode(',',preg_replace('/^.*\
    [(.*)\].*$/','$1',trim($_POST['editmainmenu'], '[]'))); 

    mysql_connect("localhost", "root", "root");
    mysql_select_db("test"); 

    $i = 0;
    foreach ($old_menu_names as $key => $old_name)
    {
       $new_name = mysql_real_escape_string($new_menu_names[$i]);
       $old_name  = mysql_real_escape_string($old_menu_names[$key]);
       echo $new_name;
       mysql_query("UPDATE `test` SET `menuname` = '$new_name' WHERE menuname =   '$old_name'")
       or die('Error' . mysql_error());
       echo "Updated"; 
       $i++;
    }

?>

我可以打印此行的响应是 echo $new_name; 回声“更新”;aUpdated bUpdated c\nUpdated dUpdated eUpdated fUpdated

但只有第一个被更新剩余的行没有被更新

4

1 回答 1

0

嗯……

可能你的正则表达式有错误..

在 foreach 之前转储 $old_menu_names 变量。

print_r($old_menu_names);
于 2012-04-13T13:48:08.993 回答