Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
选择sum php和mysql后,给我一个错误-子查询返回多行?_Php_Mysql_Subquery_Vote - Fatal编程技术网

选择sum php和mysql后,给我一个错误-子查询返回多行?

选择sum php和mysql后,给我一个错误-子查询返回多行?,php,mysql,subquery,vote,Php,Mysql,Subquery,Vote,我已经做了一些投票脚本,在那里用户投票向上或向下的一些答案。当我对这个问题只有一个答案时,它工作得很好。如果我对一个问题给出两个或多个答案,“我得到一个错误”子查询将返回多行 这是向上按钮,向下按钮类似。我知道有更简单的方法来实现这一切,但我对php是新手。。 以下是表格问题 CREATE TABLE IF NOT EXISTS `questions` ( `id` int(11) NOT NULL AUTO_INCREMENT, `question` text NOT NULL, `user`

我已经做了一些投票脚本,在那里用户投票向上或向下的一些答案。当我对这个问题只有一个答案时,它工作得很好。如果我对一个问题给出两个或多个答案,“我得到一个错误”子查询将返回多行

这是向上按钮,向下按钮类似。我知道有更简单的方法来实现这一切,但我对php是新手。。 以下是表格问题

CREATE TABLE IF NOT EXISTS `questions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`question` text NOT NULL,
`user` varchar(255) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
和表格答案

CREATE TABLE IF NOT EXISTS `answers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`answer` text COLLATE utf8_unicode_ci NOT NULL,
`questionId` int(11) NOT NULL,
`user` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
 )
和桌上投票

CREATE TABLE IF NOT EXISTS `vote` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(50) NOT NULL,
`answerId` int(11) NOT NULL,
`up` int(11) NOT NULL,
`down` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

问题在哪里?如何解决这个问题?谢谢

根据你的问题,我知道你想列出某个问题的所有反对票。然后,如果要将列上下更新为表答案,则查询很简单

"SELECT SUM(down) as down 
FROM answers WHERE questionId = $id)"

IN将为您解决这个问题,但它不会真正触及问题的核心,我认为您应该使用IN。从投票中选择SUMdown作为down,其中answerId在从答案中选择answerId,其中questionId=$idYou需要answerId而不是questionId,对吗?如果我输入,则我得到这个“mysqli\u fetch\u数组期望参数1是mysqli\u结果,布尔值在第11行的C:\wamp\www\mysite\up.php中给出”。。。
"SELECT SUM(down) as down 
FROM answers WHERE questionId = $id)"