2015-06-22 29 views
0

我目前使用表单将最多10个ItemID发送到PHP文件。 ItemID的一侧我正在发送“状态更新”以让用户更改所有这些ID的状态。通过这种方式,我设法为我的客户创建了一个Admin功能。如何使用多个if语句更新表格

的ItemID的是大多数事情的主要触发并包含有关仪器,如名称,描述,位置等一些信息..项目ID的仅仅是对一台仪器是唯一的。每一个项目ID的

一部分是群ID。 GroupID组装一个乐器所属的组。如果一个乐器包含多个部分,它将被强制进入一个组。假设我们有这个仪器的波纹管,一个包含2个传感器(ID:1438,1439)的温度传感器(ID:1437),以及它最高的雄伟形状的大型计算器。该乐器和“额外”部件将被添加到groupid =“10”。

2.所以用我的代码我想扫描组ID的每个itemID。如果groupID超过0,则将所有itemID(在特定组下)更改为从表单发送的状态。同时,我希望该函数能够更改所有输入的itemID的状态(主要是groupID =“0”的项目)。通过这种方式,用户不需要扫描组的每个部分,并且可以节省大量时间用于白天的其他工作。

3.在这种状态下的功能的问题是,它只会改变任何一个组的状态,或只改变输入到窗体的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

我找到了解决这个!无论哪种方式,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')"; 
      } 
     } 
    }