1

This is my for loop. I want to update those records which designMasterId i get in hidden but it is automatically update all records..

Through this hidden text box i am try to pass designmasterId:

<input type="hidden" name="designMasterId[]" value="{$designArray[sec].designMasterId}">

Php code:

   if(isset($_POST['Submit']))
      {
        $recDate       = $_POST['rDtYear']."-".$_POST['rDtMonth']."-".$_POST['rDtDay'];
        $lastProcess   = isset($_POST['processId']) ? $_POST['processId'] : 0;
        $nextProcessId = isset($_POST['nextProcessId']) ? $_POST['nextProcessId'] : 0;

        for($i=0; $i< count($_POST['designMasterId']); $i++)
        {
          $processId       = isset($_POST['processId'][$i]) ? $_POST['processId'][$i] : 0;
          $reciveWet       = isset($_POST['reciveWet'][$i]) ? $_POST['reciveWet'][$i] : 0;
          $designMasterId  = isset($_POST['designMasterId'][$i]) ? $_POST['designMasterId'][$i] : 0;

          $updatePro = "UPDATE process 
                          SET rDate = '".$recDate."',
                              reciveWet = '".$reciveWet."',
                              nextProcessId   = ".$nextProcessId.",
                              processMasterId = ".$nextProcessId.",
                              status = 'I'
                         WHERE designMasterId = ".$designMasterId;
         $updateProRes = mysql_query($updatePro);
         if(!$updateProRes)
          {
            echo "Recive Fail";
          }
          else
          {
            header("Location:processRecive.php");
          }
        }
      }
georg
  • 211,518
  • 52
  • 313
  • 390
Prashant Bhatt
  • 507
  • 1
  • 6
  • 19

3 Answers3

-1

I have updated your code check if it works for you..

if(isset($_POST['Submit']))
    {
        $recDate       = $_POST['rDtYear']."-".$_POST['rDtMonth']."-".$_POST['rDtDay'];
        $lastProcess   = isset($_POST['processId']) ? $_POST['processId'] : 0;
        $nextProcessId = isset($_POST['nextProcessId']) ? $_POST['nextProcessId'] : 0;
    for($i=0; $i< count($_POST['designMasterId']); $i++)
    {
      $processId       = (isset($_POST['processId'][$i]) && !empty($_POST['processId'][$i])) ? $_POST['processId'][$i] : 0;
      $reciveWet       = (isset($_POST['reciveWet'][$i]) && !empty($_POST['reciveWet'][$i])) ? $_POST['reciveWet'][$i] : 0;
      $designMasterId  = (isset($_POST['designMasterId'][$i]) && !empty($_POST['designMasterId'][$i])) ? $_POST['designMasterId'][$i] : 0;

      if(isset($designMasterId) && !empty($designMasterId)){
      $updatePro = "UPDATE process 
                      SET rDate = '".$recDate."',
                          reciveWet = '".$reciveWet."',
                          nextProcessId   = ".$nextProcessId.",
                          processMasterId = ".$nextProcessId.",
                          status = 'I'
                     WHERE designMasterId = ".$designMasterId;
     $updateProRes = mysqli_query($updatePro);
     if(!$updateProRes)
      {
        echo "Recive Fail";
      }
      else
      {
        header("Location:processRecive.php");
      }
      }else{
        continue;
      }
        }
      }
Narendrasingh Sisodia
  • 21,247
  • 6
  • 47
  • 54
-1

Try this this will work for you

if(isset($_POST['Submit'])) {

$recDate = $_POST['rDtYear']."-".$_POST['rDtMonth']."-".$_POST['rDtDay']; $lastProcess = isset($_POST['processId']) ? $_POST['processId'] : 0; $nextProcessId = isset($_POST['nextProcessId']) ? $_POST['nextProcessId'] : 0;
for($i=0; $i< count($_POST['designMasterId']); $i++)
{
  $processId       = (isset($_POST['processId'][$i]) && !empty($_POST['processId'][$i])) ? $_POST['processId'][$i] : 0;
  $reciveWet       = (isset($_POST['reciveWet'][$i]) && !empty($_POST['reciveWet'][$i])) ? $_POST['reciveWet'][$i] : 0;
  $designMasterId  = (isset($_POST['designMasterId'][$i]) && !empty($_POST['designMasterId'][$i])) ? $_POST['designMasterId'][$i] : 0;

  if(isset($designMasterId) && !empty($designMasterId)){
  $updatePro = "UPDATE process 
                  SET rDate = '".$recDate."',
                      reciveWet = '".$reciveWet."',
                      nextProcessId   = ".$nextProcessId.",
                      processMasterId = ".$nextProcessId.",
                      status = 'I'
                 WHERE designMasterId = ".$designMasterId;
 $updateProRes = mysqli_query($updatePro);
 if(!$updateProRes)
  {
    echo "Recive Fail";
  }
  else
  {
    header("Location:processRecive.php");
  }
  }else{
    continue;
  }
    }
  }
I'm Geeker
  • 4,601
  • 5
  • 22
  • 41
  • there is no error but it's update whole records of table – Prashant Bhatt Mar 24 '15 at 12:00
  • use this `if(!empty($designMasterId)){` – I'm Geeker Mar 24 '15 at 12:02
  • same result @Developing Developer – Prashant Bhatt Mar 24 '15 at 12:05
  • whats ur expected output ? – I'm Geeker Mar 24 '15 at 12:08
  • UPDATE process SET rDate = '2016-03-24', reciveWet = '10.230', nextProcessId = 1, processMasterId = 1, status = 'I' WHERE designMasterId = 1 UPDATE process SET rDate = '2016-03-24', reciveWet = '5.260', nextProcessId = 1, processMasterId = 1, status = 'I' WHERE designMasterId = 1 UPDATE process SET rDate = '2016-03-24', reciveWet = '10.230', nextProcessId = 1, processMasterId = 1, status = 'I' WHERE designMasterId = 2 UPDATE process SET rDate = '2016-03-24', reciveWet = '0', nextProcessId = 1, processMasterId = 1, status = 'I' WHERE designMasterId = 3 – Prashant Bhatt Mar 24 '15 at 12:10
  • Let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/73662/discussion-between-user1866385-and-developing-developer). – Prashant Bhatt Mar 24 '15 at 12:10
-1

use array_filter in count record for loop

<?PHP
if(isset($_POST['Submit']))
      {
        $recDate       = $_POST['rDtYear']."-".$_POST['rDtMonth']."-".$_POST['rDtDay'];
        $lastProcess   = isset($_POST['processId']) ? $_POST['processId'] : 0;
        $nextProcessId = isset($_POST['nextProcessId']) ? $_POST['nextProcessId'] : 0;

        for($i=0; $i< count(array_filter($_POST['designMasterId'])); $i++)
        {
          $processId       = isset($_POST['processId'][$i]) ? $_POST['processId'][$i] : 0;
          $reciveWet       = isset($_POST['reciveWet'][$i]) ? $_POST['reciveWet'][$i] : 0;
          $designMasterId  = isset($_POST['designMasterId'][$i]) ? $_POST['designMasterId'][$i] : 0;

          $updatePro = "UPDATE process 
                          SET rDate = '".$recDate."',
                              reciveWet = '".$reciveWet."',
                              nextProcessId   = ".$nextProcessId.",
                              processMasterId = ".$nextProcessId.",
                              status = 'I'
                         WHERE designMasterId = ".$designMasterId;
         $updateProRes = mysql_query($updatePro);
         if(!$updateProRes)
          {
            echo "Recive Fail";
          }
          else
          {
            header("Location:processRecive.php");
          }
        }
      }
?>
Navjot Singh
  • 514
  • 4
  • 14