Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Inserting data into sql it inserts two into rows, and i dont know why

When Inserting data into SQL it inserts two into rows, and I don’t know why.

most probably of the if statement I added after the results you can find it as my comment:

// id_no update

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

And I used the select query two times to fetch the id and make it an auto-increment thing.

my table:

Sql Table

<?PHP
  $query = "SELECT id_no FROM db_name ORDER BY id_no DESC";
  $result = mysqli_query($con,$query);
  $row = mysqli_fetch_array($result);
  $lastid = $row['id_no'];
  if(empty($lastid))
  {
    $number = "SX000001";
  }
  else
  {
    $idd = str_replace("SX", "", $lastid);
    $id = str_pad($idd + 1, 6, 0, STR_PAD_LEFT);
    $number = 'SX'.$id;
  }
?> 
<?PHP
  if(isset($_POST['add_id']))
  {
    $id_no = mysqli_real_escape_string($con,$_POST['id_no']);
    $sql="INSERT INTO `db_name`(`id_no`) VALUES ('$id_no')";
    $result=mysqli_query($con,$sql);

    // id_no update
    if(mysqli_query($con,$sql))
    {
      $query = "SELECT id_no FROM db_name ORDER BY id_no DESC";
      $result = mysqli_query($con,$query);
      $row = mysqli_fetch_array($result);
      $lastid = $row['id_no'];

      if(empty($lastid))
      {
        $number = "SX000001";
      }
      else
      {
        $idd = str_replace("SX", "", $lastid);
        $id = str_pad($idd + 1, 6, 0, STR_PAD_LEFT);
        $number = 'SX'.$id;
      }

    }
    else
    {
        echo "Record Faileddd";
    }
    
    
    if($result)
    {
      $success="Post has been added successfully";
    } else 
    {
      $error="Something went wrong!";   
    }
      $id_no = '';
    }
?>

Please don’t downvote this question I asked something wrong or a similar question is already available, just comment me I will delete it

>Solution :

You should check if $result is truthy to see if the insertion succeded (without running another query):

$id_no = mysqli_real_escape_string($con,$_POST['id_no']);
$sql="INSERT INTO `db_name`(`id_no`) VALUES ('$id_no')";
$result=mysqli_query($con,$sql);

// id_no update
if($result)
{
  ...
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading