2013-05-30 23 views
0

我有一個三部分表單,它的工作方式如下,第一個表單稱爲create_ticket.php,它基本上是一個包含客戶聯繫信息和他們想要完成的表單的表單。當票被填寫完成後,它被提交給MySQL,然後當對數據庫進行搜索時,您可以通過單擊搜索結果中與該票相關聯的選擇鏈接來選擇所需的票,並且瀏覽器將打開一個新窗口表單的第二部分,但它會在瀏覽器中傳遞與該MySQL記錄關聯的id,以便在url的末尾看到?id = 10現在表單的第二部分是技術人員用來填寫什麼內容他們這樣做,當他們點擊頁面底部的簽名時,會彈出表格的第三部分,允許客戶在tech的ipad或Toughbook上簽名,當他們點擊接受時,它應該更新與MySQL關聯的記錄該ID在URL中傳遞。我的問題是它不起作用。所以你可以在http://jemtechnv.com/test/ticket_results.php查看錶格,看看你什麼時候點擊選擇它可以讓你填寫技術員表格。 這裏是我的代碼處理表單的第2部分:無法獲取表單來更新mysql記錄

<?php 
// database connection // 

include 'db/db_connect.php'; 

//This gets all the other information from the form 

// start of form inputs // 

$work_performed=$_POST['work_performed']; 
$item_qty1=$_POST['item_qty1']; 
$item_qty2=($_POST['item_qty2']); 
$item_qty3=$_POST['item_qty1']; 
$item_qty4=($_POST['item_qty2']); 
$item_qty5=$_POST['item_qty1']; 
$manuf_1=$_POST['manuf_1']; 
$manuf_2=$_POST['manuf_2']; 
$manuf_3=$_POST['manuf_3']; 
$manuf_4=$_POST['manuf_4']; 
$manuf_5=$_POST['manuf_5']; 
$part_number1=$_POST['part_number1']; 
$part_number2=$_POST['part_number2']; 
$part_number3=$_POST['part_number3']; 
$part_number4=$_POST['part_number4']; 
$part_number5=$_POST['part_number5']; 
$part_description1=$_POST['part_description1']; 
$part_description2=$_POST['part_description2']; 
$part_description3=$_POST['part_description3']; 
$part_description4=$_POST['part_description4']; 
$part_description5=$_POST['part_description5']; 
$part1_price=$_POST['part_price1']; 
$part2_price=$_POST['part_price2']; 
$part3_price=$_POST['part_price3']; 
$part4_price=$_POST['part_price4']; 
$part5_price=$_POST['part_price5']; 
$price_extension1=$_POST['price_extension1']; 
$price_extension2=$_POST['price_extension2']; 
$price_extension3=$_POST['price_extension3']; 
$price_extension4=$_POST['price_extension4']; 
$price_extension5=$_POST['price_extension5']; 
$material_total=$_POST['material_total']; 
$sales_tax=$_POST['sales_tax']; 
$shipping_cost=$_POST['shipping_cost']; 
$work_date1=$_POST['work_date1']; 
$work_date2=$_POST['work_date2']; 
$work_date3=$_POST['work_date3']; 
$work_date4=$_POST['work_date4']; 
$work_date5=$_POST['work_date5']; 
$tech_name1=$_POST['tech_name1']; 
$tech_name2=$_POST['tech_name2']; 
$tech_name3=$_POST['tech_name3']; 
$tech_name4=$_POST['tech_name4']; 
$tech_name5=$_POST['tech_name5']; 
$cost_code1=$_POST['cost_code1']; 
$cost_code2=$_POST['cost_code2']; 
$cost_code3=$_POST['cost_code3']; 
$cost_code4=$_POST['cost_code4']; 
$cost_code5=$_POST['cost_code5']; 
$pay_rate1=$_POST['pay_rate1']; 
$pay_rate2=$_POST['pay_rate2']; 
$pay_rate3=$_POST['pay_rate3']; 
$pay_rate4=$_POST['pay_rate4']; 
$pay_rate5=$_POST['pay_rate5']; 
$total_hours1=$_POST['total_hours1']; 
$total_hours2=$_POST['total_hours2']; 
$total_hours3=$_POST['total_hours3']; 
$total_hours4=$_POST['total_hours4']; 
$total_hours5=$_POST['total_hours5']; 
$hours_subtotal1=$_POST['hours_subtotal1']; 
$hours_subtotal2=$_POST['hours_subtotal2']; 
$hours_subtotal3=$_POST['hours_subtotal3']; 
$hours_subtotal4=$_POST['hours_subtotal4']; 
$hours_subtotal5=$_POST['hours_subtotal5']; 
$total_hours=$_POST['total_hours']; 
$material_total=$_POST['material_total']; 
$labor_cost=$_POST['labor_cost']; 
$grand_total=$_POST['grand_total']; 

//Writes the information to the database 
mysql_query("UPDATE INTO tickets WHERE id=$id (work_performed, item_qty1, item_qty2, item_qty3, item_qty4, item_qty5,manuf_1, manuf_2, manuf_3, manuf_4, manuf_5, part_number1, part_number2, part_number3, part_number4, part_number5, part_description1, part_description2, part_description3, part_description_4, part_description_5, part1_price, part2_price, part3_price, part4_price, part5_price, price_extension1, price_extension2, price_extension3, price_extension4, price_extension5, material_total, sales_tax, shipping_cost, work_date1, work_date2, work_date3, work_date4, work_date5, tech_name1, tech_name2, tech_name3, tech_name4, tech_name5, cost_code1, cost_code2, cost_code3, cost_code4, cost_code5, pay_rate1, pay_rate2, pay_rate3, pay_rate4, pay_rate5, total_hours1, total_hours2, total_hours3, total_hours4, total_hours5, hours_subtotal1, hours_subtotal2, hours_subtotal3, hours_subtotal4, hours_subtotal5, total_hours, material_total, labor_cost, grand_total,) 
VALUES ('$work_performed','$item_qty1','$item_qty2','$item_qty3','$item_qty4','$item_qty5','$mauf_1','$manuf_2','$manuf_3','$manuf_4','$manuf_5','$part_number1','$part_number2','$part_number3','$part_number4','$part_number5','$part_description1','$part_description2','$part_description3','$part_description_4', 
'$part_description5','$part1_price','$part2_price','$part3_price','$part4_price','$part5_price','$price_extension1','$price_extension2','$price_extension3','$price_extension4','$price_extension5','$material_total','$sales_tax','$shipping_cost','$work_date1','$work_date2','$work_date3','$work_date4','$work_date5','$tech_name1','$tech_name2','$tech_name3','$tech_name4','$tech_name5','$cost_code1','$cost_code2','$cost_code3','$cost_code4','$cost_code5','$pay_rate1','$pay_rate2','$pay_rate3','$pay_rate4','$pay_rate5', 
'$total_hours1','$total_hours2','$total_hours3','$total_hours4','$total_hours5','$hours_subtotal1','$hours_subtotal2','$hours_subtotal3','$hours_subtotal4','$hours_subtotal5','$total_hours','$material_total','$labor_cost','$grand_total',)") ; 



mysql_affected_rows(); 

    ?> 
<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> 

我也知道我需要的MySQL注入的預防措施,但說實話,在我剛纔想的形式,這不是一個優先的時刻先工作然後我會回去清理代碼。謝謝你的幫助!我已禁用了表單的簽名部分,因此點擊第二張表單上的獲取簽名將處理表單併爲該記錄執行更新,以及它應該但不是!

更新:我已經改變了查詢語法的建議如下這樣:

mysql_query("UPDATE tickets SET (work_performed, item_qty1, item_qty2, item_qty3, item_qty4, item_qty5,manuf_1, manuf_2, manuf_3, manuf_4, manuf_5, part_number1, part_number2, part_number3, part_number4, part_number5, part_description1, part_description2, part_description3, part_description_4, part_description_5, part1_price, part2_price, part3_price, part4_price, part5_price, price_extension1, price_extension2, price_extension3, price_extension4, price_extension5, material_total, sales_tax, shipping_cost, work_date1, work_date2, work_date3, work_date4, work_date5, tech_name1, tech_name2, tech_name3, tech_name4, tech_name5, cost_code1, cost_code2, cost_code3, cost_code4, cost_code5, pay_rate1, pay_rate2, pay_rate3, pay_rate4, pay_rate5, total_hours1, total_hours2, total_hours3, total_hours4, total_hours5, hours_subtotal1, hours_subtotal2, hours_subtotal3, hours_subtotal4, hours_subtotal5, total_hours, material_total, labor_cost, grand_total,)WHERE id=$id 
VALUES ('$work_performed','$item_qty1','$item_qty2','$item_qty3','$item_qty4','$item_qty5','$mauf_1','$manuf_2','$manuf_3','$manuf_4','$manuf_5','$part_number1','$part_number2','$part_number3','$part_number4','$part_number5','$part_description1','$part_description2','$part_description3','$part_description_4', 
'$part_description5','$part1_price','$part2_price','$part3_price','$part4_price','$part5_price','$price_extension1','$price_extension2','$price_extension3','$price_extension4','$price_extension5','$material_total','$sales_tax','$shipping_cost','$work_date1','$work_date2','$work_date3','$work_date4','$work_date5','$tech_name1','$tech_name2','$tech_name3','$tech_name4','$tech_name5','$cost_code1','$cost_code2','$cost_code3','$cost_code4','$cost_code5','$pay_rate1','$pay_rate2','$pay_rate3','$pay_rate4','$pay_rate5', 
'$total_hours1','$total_hours2','$total_hours3','$total_hours4','$total_hours5','$hours_subtotal1','$hours_subtotal2','$hours_subtotal3','$hours_subtotal4','$hours_subtotal5','$total_hours','$material_total','$labor_cost','$grand_total',)"); 

,但現在我得到以下錯誤,當我提交表單更新數據庫,

你有一個錯誤在你的SQL語法中;請檢查與您的MySQL服務器版本對應的手冊,以便在第1行'(work_performed,item_qty1,item_qty5,item_qty3,item_qty4,item_qty5,manuf_1,')使用正確的語法。

+0

緊接着包括 'DB/db_connect.php';做的print_r($ _ POST);以及發佈輸出 –

+0

@IvoPereira我加入的print_r($ _ POST),當我提交表單它顯示在屏幕上的所有信息被髮送,但沒有發佈在MySQL中,我已經提出瞭如下建議我的查詢所做的更改,我的查詢現在是更新票證SET等等等等等WHERE id = $ id – Jason

回答

2

您的查詢是錯誤的。

UPDATE tickets SET work_performed = something, item_qty1 = something .... WHERE id=$id 
+0

我不退出理解我需要的 用SET做?我必須在每個變量之後添加一個語句,還是從表單中獲取該信息? – Jason

+0

@JasonMcAdams你想更新行。而你的更新查詢是錯誤的。在我的答案中顯示了使用'UPDATE'的正確語法。 –

+0

@YogeshSuthar給了你答案。順便說一句,爲了幫助你在這種情況下調試,做一些像mysql_query('SELECT * FROM blabla')或死(mysql_error());所以你可以得到導致錯誤的原因。 –