vino
vino

Reputation: 34

insert multiple rows with conditions

I'm inserting a multiple row data with foreach() loop. But I don't want to insert a particular row if its value is tax or discount. How do I do that.

my code:

<?php
if(isset($_POST['finalsave']))
{
  foreach ($_POST['descr'] as $key => $descr)
  {
    $dept = mysql_real_escape_string($_POST['category']);
    $idate = mysql_real_escape_string($_POST['idate']);
    $desc1 = mysql_real_escape_string($descr);
    $tags = mysql_real_escape_string($_POST['name'][$key]);
    $location = mysql_real_escape_string($_POST['location'][$key]);
    $war = mysql_real_escape_string($_POST['war'][$key]);
    $qty = mysql_real_escape_string($_POST['qty'][$key]);
    $rate = mysql_real_escape_string($_POST['rate'][$key]);
    $finalamt = mysql_real_escape_string($_POST['finalamt'][$key]);

    $sql2 = ("INSERT INTO `project`.`master_inventory` (`category`, `idate`, `descr`, `name`, `location`,  `war`, `qty`, `rate`, `finalamt`)
      VALUES ('".$dept."','".$idate."','".$desc1."','".$tags."','".$location."','".$war."','".$qty."','".$rate."','".$finalamt."')");
    $sqlins = mysql_query($sql2);
    //echo $sql2;
  }
}
?>

Upvotes: 0

Views: 144

Answers (3)

affaz
affaz

Reputation: 1191

Check whether the value is tax or discount before insert query.

As you said,descr field in table contains the value tax or discount which is assigned to variable $desc1

<?php
if(isset($_POST['finalsave']))
{
  foreach ($_POST['descr'] as $key => $descr)
  {
    $dept = mysql_real_escape_string($_POST['category']);
    $idate = mysql_real_escape_string($_POST['idate']);
    //this variable $desc1 will have the value tax or discount
    $desc1 = mysql_real_escape_string($descr);
    $tags = mysql_real_escape_string($_POST['name'][$key]);
    $location = mysql_real_escape_string($_POST['location'][$key]);
    $war = mysql_real_escape_string($_POST['war'][$key]);
    $qty = mysql_real_escape_string($_POST['qty'][$key]);
    $rate = mysql_real_escape_string($_POST['rate'][$key]);
    $finalamt = mysql_real_escape_string($_POST['finalamt'][$key]);
    //inserts only if $desc1 is not tax or discount
    if(($desc1!="tax")||($desc1!="discount")
    {
    $sql2 = ("INSERT INTO `project`.`master_inventory` (`category`, `idate`, `descr`, `name`, `location`,  `war`, `qty`, `rate`, `finalamt`)
          VALUES ('".$dept."','".$idate."','".$desc1."','".$tags."','".$location."','".$war."','".$qty."','".$rate."','".$finalamt."')");
        $sqlins = mysql_query($sql2);
    }
}
}
?>

Upvotes: 0

Pathik Vejani
Pathik Vejani

Reputation: 4491

Put if condition in foreach loop like this:

<?php
if(isset($_POST['finalsave']))
{
  foreach ($_POST['descr'] as $key => $descr) {
  // this you have to do
    if(($descr != 'tax') || ($descr != 'discount'))
    {
      $dept = mysql_real_escape_string($_POST['category']);
      $idate = mysql_real_escape_string($_POST['idate']);
      $desc1 = mysql_real_escape_string($descr);
      $tags = mysql_real_escape_string($_POST['name'][$key]);
      $location = mysql_real_escape_string($_POST['location'][$key]);
      $war = mysql_real_escape_string($_POST['war'][$key]);
      $qty = mysql_real_escape_string($_POST['qty'][$key]);
      $rate = mysql_real_escape_string($_POST['rate'][$key]);
      $finalamt = mysql_real_escape_string($_POST['finalamt'][$key]);

      $sql2 = ("INSERT INTO `project`.`master_inventory` (`category`, `idate`, `descr`, `name`, `location`,  `war`, `qty`, `rate`, `finalamt`)
        VALUES ('".$dept."','".$idate."','".$desc1."','".$tags."','".$location."','".$war."','".$qty."','".$rate."','".$finalamt."')");
      $sqlins = mysql_query($sql2);
        //echo $sql2;
    }
  }
}
?>

Upvotes: 1

Denis Bhojvani
Denis Bhojvani

Reputation: 794

Hope this will helps you.

 foreach ($_POST['descr'] as $key => $descr)
  {
    if(($descr !="tax")||($descr !="discount"))
    {
       //Write your logic here
    }
}

Upvotes: 2

Related Questions