0

私は2つの配列リストandroidをphpに送ることができます

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

そのテーブルにテストテーブルがあり、適切に更新される1つの列メニュー名が含まれています。今、別の列を menuimage として追加します。mysql データベースの menuimage 列に menuimages(blob) を挿入できます。今、更新メニュー名を実行したいのは、最初の行のみを更新することを意味します。残りの行は更新されません。

      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; echo "更新"; 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 に答える