提问~~POST跨表查询并更新语句怎么写?

MySql 码拜 8年前 (2016-02-17) 1049次浏览
请高手帮忙!问题如下:
有一个投票页面,对产品名称进行投票,对应的数据库为DB:product   表1:book 表2:CD
结构为 id name count。
提问~~POST跨表查询并更新语句怎么写?提问~~POST跨表查询并更新语句怎么写?提问~~POST跨表查询并更新语句怎么写?
每个产品的名字和id是不一样的,在投票页面输入产品名字后 怎么让POST的值跨表查询(CD,BOOK)并且在对应的投票count
中+1?
投票PHP代码:

<form method="post" action="test4.php"> 
产品投票1:<input type="text" name="cp[]"><br /><br />
产品投票2:<input type="text" name="cp[]"><br /><br />
产品投票3:<input type="text" name="cp[]"><br /><br />
<input type="hidden" name="action" value="send"> 
<br />
<input type="submit" name="Submit" value="&nbsp;&nbsp;发&nbsp;送&nbsp;&nbsp;"> 
</form> 
<?php
$conn = mysql_connect("localhost","root","root"); 
$action = $_POST["action"]; 
if($action == "send"){ 
  $kjh = join("","", $_POST["cp"]);
  
  mysql_select_db("product",$conn); 
  $sql = ("update product set count=count+1 where cp in ("$cp")");
  $result = mysql_query($sql,$conn); 
}
?>

这个SQL语句是错的   $sql = (“update product set count=count+1 where cp in (“$cp”)”);
但思路应该是这样的,求高手指导这种跨表查询并更新的语句怎么写,谢谢!

解决方案

20

update是操作表的,不是操作库的。另外这种情况不要在数据库处理,用程序处理。
你在生成页面的时候,就把数据库名、id、名称都生成在页面的多选框或下拉框里,post提交的时候,再把这些参数都传回去,就很简单了,例如下面的下拉框,你把value也传到后台,在通过下划线split,那么就可以得到表名、id、name,这三个都有了,还愁写不出SQL语句?
提问~~POST跨表查询并更新语句怎么写?

<select multiple="multiple">
  <option value="book_id1">name1</option>
  <option value="book_id2">name2</option>
  <option value="cd_id1">name1</option>
  <option value="cd_id2">name2</option>
</select>

5

分开两句代码来执行分别对两个表的更新这个是比较常见的思路。

5

这种可以考虑使用分库分表中间件,像阿里的Cobar和百度的heisenberg都还不错

5

引用 4 楼 bluesjunior 的回复:

感谢回答! 关键是这个只是举个例子 实际中对应的值有上千个。  所以还是想找跨表查询的方法。

本人觉得最好还是想办法从程序层面解决问题,毕竟数据库的最主要作用还是存储数据,计算并不是长项。几千个的话,在数据库里不一定有非常高的性能。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明提问~~POST跨表查询并更新语句怎么写?
喜欢 (0)
[1034331897@qq.com]
分享 (0)