请高手帮忙!问题如下:
有一个投票页面,对产品名称进行投票,对应的数据库为DB:product 表1:book 表2:CD
结构为 id name count。
每个产品的名字和id是不一样的,在投票页面输入产品名字后 怎么让POST的值跨表查询(CD,BOOK)并且在对应的投票count
中+1?
投票PHP代码:
有一个投票页面,对产品名称进行投票,对应的数据库为DB:product 表1:book 表2:CD
结构为 id name count。
每个产品的名字和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=" 发 送 "> </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语句?
你在生成页面的时候,就把数据库名、id、名称都生成在页面的多选框或下拉框里,post提交的时候,再把这些参数都传回去,就很简单了,例如下面的下拉框,你把value也传到后台,在通过下划线split,那么就可以得到表名、id、name,这三个都有了,还愁写不出SQL语句?
<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