Jump to content

Can't update record in MySQL


achesnpains
Go to solution Solved by achesnpains,

Recommended Posts

I have a 3 part form, the first part is filled out and submitted to MySQL by the dispatcher, the tech then clicks on the update record by id link in the search results form and is taken to the form to update the record.

The tech fills out what they need in the form and submit it to update the record by unless they fill out ALL of the form fields they record wont update in MySQL, a syntax error will display. If they fill out ALL of the fields the form will submit and update the record fine, problem is they don't always have to fill out all of the fields on the ticket. 

So here is my code :

	<?php
	// database connection //

	include 'db_connect.php';

	//This gets all the other information from the form

	// start of form inputs //
		
	include 'data/var/variables.php';
	
	//Writes the information to the database
	
		mysql_query("UPDATE `tickets` SET 	`work_performed` = '$work_performed',
									`item_qty1` = '$item_qty1',
									`item_qty2` = '$item_qty2',
									`item_qty3` = '$item_qty3',
									`item_qty4` = '$item_qty4',
									`item_qty5` = '$item_qty5',
									`manuf_1` = '$manuf_1',
									`manuf_2` = '$manuf_2',
									`manuf_3` = '$manuf_3',
									`manuf_4` = '$manuf_4',
									`manuf_5` = '$manuf_5', 
									`part_number1` = '$part_number1',
									`part_number2` = '$part_number2',
									`part_number3` = '$part_number3',
									`part_number4` = '$part_number4',
									`part_number5` = '$part_number5',
									`part_description1` = '$part_description1',
									`part_description2` = '$part_description2',
									`part_description3` = '$part_description3',
									`part_description4` = '$part_description4',
									`part_description5` = '$part_description5', 
		 							`part_price1` = '$part_price1',
		 							`part_price2` = '$part_price2',
		 							`part_price3` = '$part_price3',
		 							`part_price4` = '$part_price4',
		 							`part_price5` = '$part_price5', 
		 							`price_extension1` = '$price_extension1',
		 							`price_extension2` = '$price_extension2',
		 							`price_extension3` = '$price_extension3',
		 							`price_extension4` = '$price_extension4',
		 							`price_extension5` = '$price_extension5', 
		 							`material_total` = '$material_total', 
		 							`sales_tax` = '$sales_tax', 
		 							`shipping_cost` = '$shipping_cost', 
		 							`work_date1` = '$work_date1',
		 							`work_date2` = '$work_date2',
		 							`work_date3` = '$work_date3',
		 							`work_date4` = '$work_date4',
		 							`work_date5` = '$work_date5',
		 							`tech_name1` = '$tech_name1',
		 							`tech_name2` = '$tech_name2',
		 							`tech_name3` = '$tech_name3',
		 							`tech_name4` = '$tech_name4',
		 							`tech_name5` = '$tech_name5', 
		 							`cost_code1` = '$cost_code1',
		 							`cost_code2` = '$cost_code2',
		 							`cost_code3` = '$cost_code3',
		 							`cost_code4` = '$cost_code4',
		 							`cost_code5` = '$cost_code5', 
		 							`pay_rate1` = '$pay_rate1',
		 							`pay_rate2` = '$pay_rate2',
		 							`pay_rate3` = '$pay_rate3',
		 							`pay_rate4` = '$pay_rate4',
		 							`pay_rate5` = '$pay_rate5', 
		 							`total_hours1` = '$total_hours1',
		 							`total_hours2` = '$total_hours2',
		 							`total_hours3` = '$total_hours3',
		 							`total_hours4` = '$total_hours4',
		 							`total_hours5` = '$total_hours5', 
		 							`hours_subtotal1` = '$hours_subtotal1',
		 							`hours_subtotal2` = '$hours_subtotal2',
		 							`hours_subtotal3` = '$hours_subtotal3',
		 							`hours_subtotal4` = '$hours_subtotal4',
		 							`hours_subtotal5` = '$hours_subtotal5', 
		 									`total_hours` = '$total_hours', 
		 									`material_total` = '$material_total', 
		 									`labor_cost` = '$labor_cost', 
		 									`grand_total` = '$grand_total'	WHERE `id` = '$id'"); 
	 
	

 
	mysql_affected_rows();
	
	echo mysql_error();
	
	?>
	<html>
	<body>
	<center>
	<br><br><br>
	<form name="results" method="post" action="ticket_results.php" enctype="multipart/form-data" id="ticketresult">
	<input type="submit" class="submit" id="ticketresult" style="width: 165px" value="Do Something">
	</form>
	</center>
	</body>
	</html>

Now I've been told previously to do the following,

change my variables to this:

$item_qty=$_POST['item_qty'][];

 

or this,

$item_qty1=(isset($_POST['item_qty1'])? $_POST['item_qty1'] : 'NULL');

 

and neither suggestion works. 

How can I change my code so the form can be submitted without all the fields being filled out?

Edited by achesnpains
Link to comment
Share on other sites

Well, where to begin.

 

- First, allow me to notify you that you shouldnt be using mysql. Use mysqli or PDO mysql instead.

- Second, since you are using mysql, you need to prevent mysql injection and escape the variables. I cant see if you are doing that or not, but I hope you are.

- if you want to understand your $_POST request better, you can echo it using:

echo '<pre>' . print_r($_POST, true) . '</pre>';

- this line:

mysql_affected_rows();

wont echo anything. You need to put echo in front of it.

- dont use center tags. CSS can do that better and <center> tags seem really outdated.

- Lastly, what in the world are you doing to store data in such a way? Perhaps you could normalize your data and store it in several databases?

 

that should give some insight as to what the PHP is receving and it might help you determine what to do next

Link to comment
Share on other sites

  • Solution

This was absolutely worthless and completely off topic to what I asked, If one more person comments about sql injection and to quit using MySQL I'm going to scream, MySQL isn't going anywhere for a long time, too many instances of it in use with too many people that don't know what to do with making the switch. Secondly, I wasn't asking for someone to criticize my work, I'm not a professional coder, I'm a business owner trying something out on my own before I waste the time of my guy's that do code with something that could be accomplished some other way.  I don't understand why everybody I've asked this question to just can't stay on topic and answer the question at hand without telling me what I need to do with everything else besides what my issues is. None of the things you said have anything to do with my problem which is fine now as I've figured out what the issue was on my own!

Link to comment
Share on other sites

We are free to criticize the work you display as we find fit. You will only benefit from what we say. All points are valid to the displayed code althought not all are directly related to the subject at hand.

 

Give yourself a break to learn from others who actually have something to share.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.