たとえば、[P、Q、R、S、T、U、V]と[A、B、C、D、E、F、G]の2つの配列リストを、AndroidからURLを介してphpに送信しています。更新すると、[P、Q、R、S、T、U、V]は[A、B、C、D、E、F、G]に置き換えられ、正しく更新されます。しかし、mysqlデータベースでは、最初の行を更新している間、つまりAは正しく更新され、2番目の行から更新ごとにBからGに更新され、最初は各行の先頭に余分なスペースがあります
Before update After update1 After2nd update
P A A
Q B B
R C C
S D D
T E E
U F F
V G G
このコードを試してみます
<?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");
foreach ($old_menu_names as $key => $old_name)
{
$new_name = mysql_real_escape_string($new_menu_names[$key]);
$old_name = mysql_real_escape_string($old_menu_names[$key]);
mysql_query("UPDATE `test` SET `menuname` = '$new_name' WHERE menucode = '$old_name'")
or die('Error' . mysql_error());
echo "Updated";
}
?>