嗨,我有以下代码:
$sql_cadets = "SELECT cadet_unique FROM cadets";
$query_cadets = mysqli_query($db,$sql_cadets);
$sql_assets = "SELECT * FROM assets";
$query_assets = mysqli_query($db,$sql_assets);
while ($row_assets = mysqli_fetch_array($query_assets)) {
$assigned = false;
while ($row_cadets = mysqli_fetch_array($query_cadets)) {
if (($row_assets['asset_assigned_to'] == '') && ($assigned == false)) {
$assigned = true;
$query = $connection->prepare("INSERT INTO `assignations` (`asset_unique`, `assigned_to`, `assigned_for`, `date_assigned`,
`date_expected`) VALUES (?, ?, ?, NOW(), ?)");
$query->bind_param("ssss",$row_assets['asset_unique'],$row_cadets['cadet_unique'],$_GET['evtid'],$_GET['dateexpected']);
$query->execute();
$query->close();
$query = $connection->prepare("UPDATE `assets` SET `asset_assigned_to` = ?, `asset_assigned_for` = ?, `asset_assigned_date` = NOW()
WHERE `asset_unique` = ?");
$query->bind_param("sss", $row_cadets['cadet_unique'], $_GET['evtid'],$row_assets['asset_unique']);
$query->execute();
$query->close();
}
}
}
?>它旨在遍历数据库中的每个资产,然后针对每个资产遍历每个学员,并在尚未分配资产的情况下为学员分配该资产。由于某些原因,PHP页面确实插入到assignations表中,但具有相同的资产和两个不同的学员。我在谷歌和堆栈溢出上查找了这个问题,我发现了一个常见的问题,那就是mysqli_fetch_array应该循环,而不是只有一次,但我已经修复了这个问题,它仍然失败。当它将这些数据放入表中时,将会发生的情况是,在那之后它应该更新assets表。我有三个名为TSK10L、TSK11L和TSK13L的资产作为其asset_unique字段,但系统仅将TSK10L分配给分配表中的两个已定义学员,但只为一个资产分配一个学员。我广泛地寻找了答案,但似乎没有人有像我这样的问题。我正在尝试为当地急需的海军学员单位设计一个内部网解决方案。
发布于 2018-11-12 11:16:32
您应该在中使用where uniq_field
$sql_assets = "SELECT * FROM assets";
https://stackoverflow.com/questions/53255458
复制相似问题