Parkie02 Posted December 4, 2013 Share Posted December 4, 2013 Can somebody tell me why there is two complaint records added to the complaint table when I am entering information of somebody and how I can fix it. Here is the new code <?php session_start(); if(!$_SESSION['email']) { header("location:login.php"); } ?> <html> <head> <title> Complaint </title> </head> <body> <form method='post' action='complaint.php'> <table width='800' border='10' align='left'> <tr> <td align='center' colspan='5'><h1>Complaint Form</h1></td> </tr> <tr> <td>Comany's Name:</td> <td><input type='text' name='comp_name' /></td> </tr> <tr> <td>Registration Number:</td> <td><input type='text' name='reg_nr' /></td> </tr> <tr> <td>Email:</td> <td><input type='text' name='comp_email' /></td> </tr> <tr> <td>Contact Person:</td> <td><input type='text' name='comp_contact_person' /></td> </tr> <tr> <td>Contact Number:</td> <td><input type='text' name='comp_contactnr' /></td> </tr> <tr> <td>Details of complain:</td> <td><input type='text' name='complain_details' /></td> </tr> <tr> <td>Order Number:</td> <td><input type='text' name='order_nr' /></td> </tr> <tr> <td>Order Description:</td> <td><input type='text' name='order_desc' /></td> </tr> <tr> <td>Order Date:</td> <td><input type='date' name='order_date' /></td> </tr> <tr> <td>Delivery Date:</td> <td><input type='date' name='delivery_date' /></td> </tr> <tr> <td>Invoice Date:</td> <td><input type='date' name='invoice_date' /></td> </tr> <tr> <td>Delivery Number:</td> <td><input type='text' name='delivery_nr' /></td> </tr> <tr> <td>Order Amount:</td> <td><input type='number' step='0.01' name='order_amount' /></td> </tr> <tr> <td>Amount Already Paid:</td> <td><input type='number' step='0.01' name='amount_paid' /></td> </tr> <tr> <td>Amount Outstanding:</td> <td><input type='number' step='0.01' name='amount_outstanding' /></td> </tr> <tr> <td colspan='5' align='center'><input type='submit' name='add_debtor' value='Submit' /></td> </tr> </table> </form> </body> </html> <?php mysql_connect("localhost","root","mj2015"); mysql_select_db("whodidntpay"); $log = $_SESSION['email']; if(isset($_POST['add_debtor'])) { $comp_name = $_POST['comp_name']; $comp_regnr = $_POST['reg_nr']; $comp_email = $_POST['comp_email']; $comp_contact_person = $_POST['comp_contact_person']; $comp_contact_nr = $_POST['comp_contactnr']; $complain_det = $_POST['complain_details']; $ordernr = $_POST['order_nr']; $orderdesc = $_POST['order_desc']; $orderdate = $_POST['order_date']; $deliverydate = $_POST['delivery_date']; $invoicedate = $_POST['invoice_date']; $deliverynr = $_POST['delivery_nr']; $orderamount = $_POST['order_amount']; $paidamount = $_POST['amount_paid']; $outstandamount = $_POST['amount_outstanding']; if($comp_name=='') { echo "<script>alert('Please Enter Company Name')</script>"; exit(); } if($comp_regnr=='') { echo "<script>alert('Please Enter Company Registration Number')</script>"; exit(); } if($comp_email=='') { echo "<script>alert('Please Enter Company Email')</script>"; exit(); } if($comp_contact_person=='') { echo "<script>alert('Please Enter Contact Person')</script>"; exit(); } if($comp_contact_nr=='') { echo "<script>alert('Please Enter Contact Number')</script>"; exit(); } if($complain_det=='') { echo "<script>alert('Please Enter Complain Details')</script>"; exit(); } if($ordernr=='') { echo "<script>alert('Please Enter Order Number')</script>"; exit(); } if($orderdesc=='') { echo "<script>alert('Please Enter Order Description')</script>"; exit(); } if($orderdate=='') { echo "<script>alert('Please Enter Order Date')</script>"; exit(); } if($deliverydate=='') { echo "<script>alert('Please Enter Delivery Date')</script>"; exit(); } if($invoicedate=='') { echo "<script>alert('Please Enter Invoice Date')</script>"; exit(); } if($deliverynr=='') { echo "<script>alert('Please Enter Delivery Number')</script>"; exit(); } if($orderamount=='') { echo "<script>alert('Please Enter Order Amount')</script>"; exit(); } if($paidamount=='') { echo "<script>alert('Please Enter Amount Paid')</script>"; exit(); } if($outstandamount=='') { echo "<script>alert('Please Enter The Amount Outstanding')</script>"; exit(); } $num_debt = "select * from debtor where d_name= '$comp_name' AND registration_nr= '$comp_regnr'"; $run = mysql_query($num_debt); $num_comp = mysql_num_rows($run); if ($num_comp ==0) $query = "insert into debtor(d_name,registration_nr,email,contact_person,contact_number,companies_not_paid,amount_not_paid) values ('$comp_name','$comp_regnr','$comp_email','$comp_contact_person','$comp_contact_nr','1','$outstandamount')"; if ($num_comp ==1) $query = "update debtor set companies_not_paid = companies_not_paid + 1, amount_not_paid = amount_not_paid + '$outstandamount' where d_name='$comp_name'"; if (mysql_query($query)) { echo "<script>alert('Company Added Successful')</script>"; } $complain_id = "select complainant_id from complainant where email = '$log'"; $run2=mysql_query($complain_id); $row = mysql_fetch_assoc($run2); $query2 = "insert into complaint(complain,d_name,complainant_id) values ('$complain_det','$comp_name','{$row['complainant_id']}')"; mysql_query($query2); $the_auto_id_that_was_just_created = mysql_insert_id(); if (mysql_query($query2)) { echo "<script>alert('Complaint Added Successful')</script>"; } $query3 = "insert into complaint_details(order_nr,order_description,order_date,delivery_date,invoice_date,delivery_nr,complaint_nr,order_amount,amount_paid,amount_outstanding) values ('$ordernr','$orderdesc','$orderdate','$deliverydate','$invoicedate','$deliverynr','$the_auto_id_that_was_just_created','$orderamount','$paidamount','$outstandamount')"; if (mysql_query($query3)) { echo "<script>alert('Complaint Details Added Successful')</script>"; } } ?> The insert command of complaint is at query2 almost at the end of the code. Thank you Link to comment https://forums.phpfreaks.com/topic/284509-insert-double-record-instead-of-only-one/ Share on other sites More sharing options...
waynew Posted December 4, 2013 Share Posted December 4, 2013 The code: $query2 = "insert into complaint(complain,d_name,complainant_id) values ('$complain_det','$comp_name','{$row['complainant_id']}')"; mysql_query($query2); $the_auto_id_that_was_just_created = mysql_insert_id(); if (mysql_query($query2)) { echo "<script>alert('Complaint Added Successful')</script>"; } The issue: You construct your INSERT query. You execute it. You retrieve the primary key of the last inserted row. Then, you do this: if (mysql_query($query2)) { echo "<script>alert('Complaint Added Successful')</script>"; } Which basically runs the query again because it calls the mysql_query function. Change your code to something like: $query2 = "insert into complaint(complain,d_name,complainant_id) values ('$complain_det','$comp_name','{$row['complainant_id']}')"; $inserted = mysql_query($query2); $the_auto_id_that_was_just_created = null; if ($inserted) { $the_auto_id_that_was_just_created = mysql_insert_id(); echo "<script>alert('Complaint Added Successful')</script>"; } Link to comment https://forums.phpfreaks.com/topic/284509-insert-double-record-instead-of-only-one/#findComment-1461206 Share on other sites More sharing options...
Parkie02 Posted December 4, 2013 Author Share Posted December 4, 2013 Thank you Link to comment https://forums.phpfreaks.com/topic/284509-insert-double-record-instead-of-only-one/#findComment-1461208 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.