Почему объединение этих массивов вызывает ошибку? - PullRequest
0 голосов
/ 15 февраля 2011

Мой код переднего и заднего плана указан ниже. Работает отлично. И с этой страницы я отправляю 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-merge]: аргумент № 1 не является массивом в C: \ AppServ \ www \ teen \ ad_team_mem_db.php в строке 5

Ответы [ 3 ]

1 голос
/ 15 февраля 2011

В тот момент, когда вы делаете это:

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

$member - это массив PHP, и то, что вы в итоге получите в форме, будет выглядеть так:которая после POSTing будет простой строкой, поэтому ваш array_merge не работает.

0 голосов
/ 15 февраля 2011

1001 * попробовать *

$members = array_merge ((array) $member, (array) $mem);
0 голосов
/ 15 февраля 2011

Я думаю, что перед слиянием вам, вероятно, нужно десериализовать переменные POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...