-2

我正在使用复选框构建一个插入页面,工作人员可以在其中将资格(阅读:指定的标记表)分配给指定学科领域内的课程,为此,它首先检查用户(阅读:学校)是否已订阅必须具备正确的资格才能订阅。

复选框页面完全由一个 WHILE 循环构建而成,在该循环中,它打印一个学科区域内的所有课程以及对应于该学科可用资格数量的复选框数量。

while ($row = $classlistresult->fetch ())
                {
                    printf ("<form method=\"post\" 
                    action=\"%s?action=4&class=%d\">\n",
                    script_name (),
                    ASSIGN_QUALIFICATIONS,
                    $row['idClass'] );

                    print ("<tr>\n");
                    $url = sprintf ("%s?action=%d&idClass=%d", 
                    script_name (), 
                    CLASS_LIST, 
                    $row["idClass"]);

                    display_cell ("td" , "<a href=\"$url\">" . $row["Class"] . "    </a>", FALSE);
                    display_cell ("td", $row["Staff"]);

                    $idClass = $row["idClass"];
                    $idstaff = $row["idStaff"];
                    $_SESSION['Class'] = $idClass;

                    $qualname = "
                    SELECT `mldb`.`qualification`.`idQualification`, `mldb`.`qualification`.`Code`
                    FROM    `mldb`.`qualification` ";
                    $qualresult = mysqli_query ($dbc, $qualname) ;
                    while ($row = mysqli_fetch_array($qualresult, MYSQLI_ASSOC))
                        {
                            $idqual = $row['idQualification'] ;
                            print ("<td><p><input type = 'checkbox'
                            name = 'addqual[]'
                            value = '$idqual'\n" ."</a>") ;
                        }

现在,一切正常 - 当我进行回声测试以查看是否正在解析正确的类和资格信息时,它显示了正确的类和资格 ID 数组。

以下是此回声测试返回的类 ID 的一部分:

58339160 58339321 58339523 5833958 58339162 58339518 58339873 58339398 58339595 58339732 58339500 58339735 58339828 58339492 58339128 58339139 58339740 583395 58339719 58339493 5833918 58339695 5833932 58339879 58339839 58339788

但是,当我启动一个将使用复选框页面中的信息更新数据库的新功能时,我发现自己被类 ID 和资格 ID 的固定变量卡住了,因此当我尝试插入数据时会产生重复错误进入数据库:

class ID: 58339160
qualification ID: 3 (The very first entries of both Class and Qualification)

我的问题是:如何将数组传递给新函数,同时仍将其保持为数组?非常感谢!

4

1 回答 1

1

传递一个数组非常简单。

function foo($array)
{
    $array[3]=$array[0]+$array[1]+$array[2];
    return $array;
}

循环访问数组

 function fooLoop($array)
{   $sum = 0;
    for($i= 0; $i<count($array); $i++){
         $sum = $sum + $array[$i];
         echo   $array[$i];
       }
    return $sum;
}


$waffles[0]=1;
$waffles[1]=2;
$waffles[2]=3;
foo($waffles);

文档链接: http: //php.net/manual/en/functions.arguments.php

如何将数组传递给函数,并用数组返回结果

于 2013-11-12T12:08:57.583 回答