如何使用多个if语句更新表

时间:2015-06-22 08:31:41

标签: php mysql

我目前正在使用表单将最多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

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'";
        }
    }

1 个答案:

答案 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')";
            }
        }
    }