php
  • arrays
  • merge
  • 2011-02-15 132 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); 
    
    相關問題