Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于$get值的mysql连接_Php_Mysql_Join - Fatal编程技术网

Php 基于$get值的mysql连接

Php 基于$get值的mysql连接,php,mysql,join,Php,Mysql,Join,我有两张桌子 联系和投诉 联系人有3列: contact_id, contact_name, score 投诉有4栏: complaint_id, contact_id, score_deduction, complaint_type 我可以从上一页获取值$\u GET['complaint\u id'] 我试图做的是删除带有特定投诉id的记录,并获取投诉.score\u扣减的值,然后将其添加回contacts.score 我已经花了好几个小时,似乎还没弄明白 请帮忙 if (isset($

我有两张桌子

联系和投诉

联系人有3列:

contact_id, contact_name, score
投诉有4栏:

complaint_id, contact_id, score_deduction, complaint_type
我可以从上一页获取值
$\u GET['complaint\u id']

我试图做的是删除带有特定投诉id的记录,并获取投诉.score\u扣减的值,然后将其添加回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;

}

您可以将其合并到单个查询中

SELECT * FROM add_complaints AS ac
INNER JOIN contacts AS c on ac.contact_id = c.contact_id
WHERE ac.complaint_id = ?
我不熟悉您用来进行DB查询的任何东西。但我假设您知道如何获取联系人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 = ?

if(isset($\u GET['complaint\u id')){record\u set('complaints'),“从投诉处添加投诉中选择*”。$\u GET['complaints\u id']。”;$contact\u id=$row\u投诉['contact\u id'];
record\u set('contact',“从联系人中选择*,其中联系人id=$contact\u id=$contact\u id”);$score=$row\u联系人['contact\u score'];echo$score;}请填写您的问题,以便格式清晰。实际的表名是add_投诉和联系人您的代码似乎容易受到注入攻击。Mike,非常感谢您抽出时间。我的头真的撞到墙上了。我对这一切都很陌生。@smitty-欢迎来到StackOverflow=)别忘了标记解决问题的答案。查看更多信息。lethalMango全部标记。我想我会在这里待很长时间。