2012-09-11 76 views
0

我有2個表。

聯繫和投訴。

接觸有3列:

contact_id, contact_name, score 

投訴有4列:

complaint_id, contact_id, score_deduction, complaint_type 

我能夠從以前的頁面獲取價值$_GET['complaint_id']

我想要做的是刪除具有該特定的complaint_id的記錄並獲得complaints.score_deduction的值並將其添加回contacts.score。

我花了幾個小時,似乎無法解決它。

請幫忙。

if (isset($_GET['complaint_id'])) { 
record_set('complaints',"SELECT * FROM add_complaints WHERE complaint_id = ".$_GET['complaint_id'].""); 
$contact_id = $row_complaints['contact_id']; 
record_set('contact',"SELECT * FROM contacts WHERE contact_id = $contact_id"); 
$score = $row_contact['contact_score']; 
echo $score; 

} 
+0

等什麼都有你試過了嗎? –

+0

'if(isset($ _ GET ['complaint_id'])){ record_set('complaints',「SELECT * FROM add_complaints WHERE complaint_id =」。$ _ GET ['complaint_id']。「」); $ contact_id = $ row_complaints ['contact_id'];' record_set('contact',「SELECT * FROM contacts WHERE contact_id = $ contact_id」); $ score = $ row_contact ['contact_score']; echo $分; } – DSmith

+1

請放在您的問題中,以便格式清晰。 –

回答

0

您可以將其組合成單個查詢。

SELECT * FROM add_complaints AS ac 
INNER JOIN contacts AS c on ac.contact_id = c.contact_id 
WHERE ac.complaint_id = ? 

我不熟悉你用來做數據庫查詢的任何東西。但我想你會知道如何獲得聯繫人ID,當前分數和分數扣除值。並從那裏進行更新查詢和刪除查詢。

,如果你想獲得更多的花哨,只是更新到位的聯繫人記錄,而無需選擇任何你也可以這樣做:

UPDATE add_complaints AS ac 
INNER JOIN contacts AS c on ac.contact_id = c.contact_id 
SET c.score = c.score - ac.score_deduction 
WHERE ac.complaint_id = ? 

然後,只需刪除投訴

DELETE FROM add_complaints WHERE complaint_id = ? 
+0

邁克,非常感謝你花時間。我真的把我的頭撞在牆上。我對這一切都很新穎。 – DSmith

+0

@smitty - 歡迎來到StackOverflow =)不要忘記標記解決你的問題的答案。查看http://stackoverflow.com/faq瞭解更多信息。 – lethalMango

+0

lethalMango全部標出。我想我會在這裏待很久。 – DSmith