php
  • arrays
  • merge
  • 2011-02-15 76 views 0 likes 
    0

    我的前端和后端代码如下所示。它的工作完美。并从这个页面我发送2个数组到另一个页面。在那里我想合并数组并插入到MySQL表中。这是我的头版。为什么合并这些数组会导致错误?

    <?php 
        include("db.php"); 
        $team_id=$_GET['team_id']; 
        $sql1=mysql_query("select members from team where team_id='$team_id'"); 
        $sql=mysql_query("select user_id,full_name from users where school_id= '1'"); 
    
        while($array=mysql_fetch_assoc($sql)) 
        { 
         $x[] = $array['user_id']; 
        } 
        echo "</br>"; 
        $row1=mysql_fetch_array($sql1); 
        $member=unserialize($row1['members']); 
        echo "<form action='ad_team_mem_db.php' method='post'>"; 
        echo "<select name='mem[]' size='25' multiple='multiple'>"; 
        foreach(array_diff_assoc($x ,$member) as $item) 
        { 
         $sqlf=mysql_query("select user_id,full_name from users where school_id=1 and user_id='$item'"); 
         if($roww=mysql_fetch_array($sqlf)){ 
          echo "<option value='".$roww['user_id']."'>".$roww['full_name']."</option>"; 
         } 
        } 
        echo "</select></br>"; 
        echo "<input type='hidden' value='$member' name='member[]'>"; 
        echo "<input type='submit'>"; 
        echo "</form>"; 
        echo "</br>"; 
    ?> 
    

    这是我的后端页面。在这个页面我无法合并2个数组。

    <? 
        include("db.php"); 
        $mem=$_POST['mem']; 
        $member=$_POST['member']; 
        **$members = array_merge ($member, $mem);** 
    ?> 
    

    错误消息,

    警告:array_merge()[function.array合并]:参数#1是不是在C的数组:\的appserv \ WWW \青少年\ ad_team_mem_db.php上第5行

    +0

    做什么$ _ POST [ 'MEM']和$ _ POST [ '成员']的样子时,他们打你的后台页面? – 2011-02-15 19:46:54

    +0

    它只显示$ mem值!它没有显示任何$成员价值! – Wazan 2011-02-15 20:36:55

    +0

    第一个脚本中的$ member的值是多少? – Arminas 2011-02-15 22:53:43

    回答

    0

    我想你可能需要在合并之前解开POST变量。

    1

    在点你这样做:

    echo "<input type='hidden' value='$member' name='member[]'>"; 
    

    $member是一个PHP数组,你会在形式最终会是这样的:

    <input type='hidden' value='Array' name='member[]'> 
    

    其发布时将是一个简单的字符串,这就是为什么你的array_merge失败。

    0

    尝试

    $members = array_merge ((array) $member, (array) $mem); 
    
    相关问题