我目前正在使用表单将最多10个ItemID发送到PHP文件。 ItemID的一方我正在发送“状态更新”,让用户更改所有这些ID的状态。通过这种方式,我设法为我的客户创建了一个管理功能。
ItemID是大多数事物的主要触发器,包含有关仪器的一些信息,如名称,描述,位置等。项目ID对于ONE仪器来说是唯一的。
每个ItemID的一部分是GroupID。 GroupID汇集了一个工具所属的组。如果一个乐器包含多个部分,它将被强制进入一个组。
1。假设我们有这个仪器波纹管,一个温度传感器(ID:1437),其中包含2个传感器(ID:1438,1439),其中最重要的是大型计算器形成。该仪器和“额外”部分将添加到groupid =“10”。
2。因此,对于我的代码,我想扫描groupID的每个itemID。如果groupID大于0,则将所有itemID(在特定组下)更改为从表单发送的状态。同时我希望函数改变输入的所有itemID的状态(主要是groupID =“0”的项目)。通过这种方式,用户无需扫描组的每个部分,并在白天为其他工作节省了大量时间。
3。此状态下的功能问题是它只会更改ONE组的状态,或者只更改输入到表单的itemID。我需要一些建议让我使用这个功能。
1
2
$con = mysql_connect("localhost", "root", "") OR die(' Could not connect');
$db = mysql_select_db('book1', $con);
$CalDate= $_POST["CalDate"];
$DueDate= $_POST["DueDate"];
$itemID1= $_POST["itemID1"];
...
$itemID10= $_POST["itemID10"];
$groupidset= $_POST["groupid"];
$status= $_POST["status"];
if (!$con) {
die('Could not connect: '.mysql_error());
}
if(isset($itemID1) && isset($itemID2) && isset($itemID3) && isset($itemID4) && isset($itemID5) && isset($itemID6) && isset($itemID7) && isset($itemID8) && isset($itemID9) && isset($itemID10)){
$DB = new mysqli("localhost", "root", "", "book1");
$result = mysqli_query($DB, "SELECT * FROM booking WHERE itemID IN('$itemID1','$itemID2','$itemID3','$itemID4','$itemID5','$itemID6','$itemID7','$itemID8','$itemID9','$itemID10','$groupidset')");
$result2 = mysqli_query($DB, "SELECT groupid FROM booking WHERE itemID IN('$itemID1','$itemID2','$itemID3','$itemID4','$itemID5','$itemID6','$itemID7','$itemID8','$itemID9','$itemID10','$groupidset')");
while($row = mysqli_fetch_array($result2)){
$groupid = $row["groupid"];
}
if(($groupid == 0)){
$upd = "UPDATE booking SET status='$status/ADM', verification='No'";
if($CalDate !=''){
$upd.= ",CalDate='$CalDate'";
}
if($DueDate !=''){
$upd.= ",DueDate='$DueDate'";
}
$upd.=" WHERE itemID IN ('$itemID1', '$itemID2', '$itemID3', '$itemID4', '$itemID5', '$itemID6', '$itemID7', '$itemID8','$itemID9', '$itemID10')";
}
if(!empty($groupid)){
$upd = "UPDATE booking SET status='$status/ADM', verification='No' WHERE groupid IN ('$groupid')";
if($CalDate !=''){
$upd.= ",CalDate='$CalDate'";
}
if($DueDate !=''){
$upd.= ",DueDate='$DueDate'";
}
}
答案 0 :(得分:0)
我找到了解决方法!无论哪种方式,ItemID只能在第一行中采用两条路线,其余路线将自行解释。我知道这是一个混乱的代码,但它可以正常工作!
if(isset($itemID1) && isset($itemID2) && isset($itemID3) && isset($itemID4) && isset($itemID5) && isset($itemID6) && isset($itemID7) && isset($itemID8) && isset($itemID9) && isset($itemID10)){
$DB = new mysqli("localhost", "root", "", "book1");
$result1 = mysqli_query($DB, "SELECT * FROM booking WHERE itemID IN('$itemID1')");
....
$result10 = mysqli_query($DB, "SELECT * FROM booking WHERE itemID IN('$itemID10')");
while($row = mysqli_fetch_array($result1)){
$groupid1 = $row["groupid"];
echo 'ItemID1, Groupid1: ';
echo $groupid1;
echo '<br/>';
}
.....
while($row = mysqli_fetch_array($result10)){
$groupid10 = $row["groupid"];
echo 'ItemID10, Groupid10: ';
echo $groupid10;
echo '<br/>';
}
if(isset($itemID1) && isset($itemID2) && isset($itemID3) && isset($itemID4) && isset($itemID5) && isset($itemID6) && isset($itemID7) && isset($itemID8) && isset($itemID9) && isset($itemID10)){
$upd = "UPDATE booking SET status='$status/ADM', verification='No'";
if($CalDate !=''){
$upd.= ",CalDate='$CalDate'";
}
if($DueDate !=''){
$upd.= ",DueDate='$DueDate'";
}
$upd.= " WHERE ";
if($groupid1 != 0){
$upd.= "groupid IN('$groupid1')";
if($groupid2 != 0){
$upd.=" OR groupid IN('$groupid2')";
}
....
if($groupid10 != 0){
$upd.=" OR groupid IN('$groupid10')";
}
if($groupid10 == 0){
$upd.=" OR itemid IN('$itemID10')";
}
}
if(empty($groupid1)){
$upd.= "itemid IN('$itemID1')";
if($groupid2 != 0){
$upd.=" OR groupid IN('$groupid2')";
}
if($groupid2 == 0){
$upd.=" OR itemid IN('$itemID2')";
}
....
if($groupid10 != 0){
$upd.=" OR groupid IN('$groupid10')";
}
if($groupid10 == 0){
$upd.=" OR itemid IN('$itemID10')";
}
}
}