1

我正在通过 url 从 android 向 php 发送两个数组列表,例如 [P,Q,R,S,T,U,V] 和 [A,B,C,D,E,F,G]。更新时 [P,Q,R,S,T,U,V] 被 [A,B,C,D,E,F,G] 替换并且更新正确进行。但是在mysql数据库中更新第一行即A正在正确更新,并且从第二行即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";
              }
             ?>
4

2 回答 2

0
mysql_query("UPDATE `test` SET `menuname` = ltrim('$new_name') WHERE menucode = '$old_name'")
    or die('Error' . mysql_error());
于 2012-04-24T10:55:36.137 回答
0

无论您在哪里传递变量,只需修剪变量然后传递给查询。像

$name_new=trim($name);

修剪功能将删除左侧空格以及右侧空格。所以最好只选择 trim 而不是 ltrim。谢谢

于 2012-04-24T11:00:54.777 回答