这可能是一个简单的问题,但正在努力了解如何解决。我有一个允许用户选择“自定义”或“所有”人员的表格来分配给工作。
如果选择了custom,则用户通过单击每个复选框来选择人员,然后将其插入作业表中。这将产生下面的数组(3、1、10是职员ID)
Array ( [0] => 3 [1] => 1 [2] => 10 )
如果选择了“所有人员”,我首先查询一条select语句以从人员表中获取所有人员ID,然后将它们插入到作业表中,方法同上。但是,这产生了数组:
Array ( [0] => Array ( [staffID] => 1 [0] => 1 ) [1] => Array ( [staffID] => 23 [0] => 23 ) [2] => Array ( [staffID] => 26 [0] => 26 ) [3] => Array ( [staffID] => 29 [0] => 29 ) )
如何将上面的数组转换为所示的第一个数组?
我正在使用下面的代码查询数据库以获取所有员工ID,然后将其插入。
$select = $db->prepare("SELECT staffID FROM staff"); if($select->execute()) { $staff = $select->fetchAll(); } for($i = 0; $i<count($staff); $i++) { $staffStmt = $db->prepare("INSERT INTO staffJobs (jobID, userID) VALUES (:jobID, :staffID)"); $staffStmt->bindParam(':jobID', $jobID, PDO::PARAM_INT); $staffStmt->bindParam(':staffID', $staff[$i], PDO::PARAM_INT); $staffStmt->execute(); }
第一个数组插入正确,但是最后一个数组为staffID插入零。
有什么建议么?
谢谢=)。
看一下手册中的示例2。在第一个查询中,您可以使用:
$staff = $select->fetchAll(PDO::FETCH_COLUMN, 0);
您的第二个数组将具有与第一个数组相同的形式。