dimanche 11 septembre 2016

Inserting to DB via foreach

So I have these code below. The first one is a loop which echos all the requirements came from the database and write it in a checkbox form. So what I did is named it in an array form which is requirementItems[].

The next code is all about checking and inserting. If the checkbox is checked, the $state variable will have the value of 1 else, 0.

My problem is that, when I tried to leave a checkbox unchecked, it doesn't record into the database. But if it is checked, it successfully insert the data.

FIRST

<?php
      $query = $db->prepare("SELECT * FROM tbl_requirements WHERE reqStatus = 1");
      $query->execute();
        while($result = $query->fetch(PDO::FETCH_ASSOC)){
          $requirementID      =  $result['reqID'];
          $requirementName    =  $result['reqName'];
          echo " 

            <div class='row'>
              <div class='col-md-5'>
              <div class='checkbox'>
                <label>
                  <input type='checkbox'value='$requirementID' title='$requirementID' name='requirementItems[]'>
                  $requirementName
                </label>
             </div>
             </div>
            </div>
          ";

        }
    ?>

SECOND

<?php
if(isset($_POST['passSubmit'])){
$rsrvReqID                = trim($_POST['reqID']);
$customerID           = $_GET['cusID'];
$reservedProperty     = $_GET['propertyID'];  
$paymentID            = $_GET['paymentID'];
$requirementItems     = $_POST['requirementItems'];

  foreach($requirementItems as $reqItem) {
    $state = (isset($reqItem)) ? 1 : 0;

      $query = $db->prepare("INSERT INTO tbl_rsrvrequirements (rsrvReqID, customerID, propertyID, paymentID, reqID, rsrvReqState) 
        VALUES (:rsrvReqID, :customerID, :reservedProperty, :paymentID, :reqID, :state)");
      $query->execute(array(
        ":rsrvReqID"            => $rsrvReqID,
        ":customerID"           => $customerID,
        ":reservedProperty"     => $reservedProperty,
        ":paymentID"            => $paymentID,
        ":reqID"                => $reqItem,
        ":state"                => $state

        ));
      $reqNEW = str_replace('REQ','',$rsrvReqID);
      $requireID = str_pad(trim($reqNEW) +2,7,0,STR_PAD_LEFT);
      $rsrvReqID = 'REQ'.$requireID;
  }//foreach()
  echo"<meta http-equiv='refresh' content='0; url=summary.php?reqID=$rsrvReqID' >";
}//if(isset())
 ?>




Aucun commentaire:

Enregistrer un commentaire