使用php / mySQL查找特定行中的空白单元格

时间:2014-06-05 01:35:06

标签: php mysql

我正在尝试制作一个包含轮询部分的网站。如果用户尚未投票,则用户需要能够进行以前的民意调查。因此,对于他们所进行的每次民意调查,它会在单元格中添加一个注释。

表格如下所示:

userid   | poll1  | poll2  | poll3 | poll4  /
---------+--------+--------+-------+--------/
001      |   Y    |    Y   |       |        /
---------+--------+--------+-------+--------/
002      |   Y    |        |   Y   |        /
--------------------------------------------/

现在,代码必须为用户001选择poll 3和4,并将其呈现给页面上的用户。我一直在尝试几种不同的方法,但似乎找不到合适的代码。

我在网上寻找了一些帮助,但没有找到解决此问题的任何内容。

1 个答案:

答案 0 :(得分:0)

用户

id | name
---+-------
 1 | tyrion
 2 | cersei

投票

id | name
---+-------
 1 | first poll
 2 | second poll

UserPolls

user_id | poll_id
--------+-------
    1   |   1
    1   |   2
    2   |   2

在上面的表结构中,您有两个主要对象表和一个名为UserPolls的关系表。对于你想要的任何数量的民意调查,这都可以很好地扩展。 然后,如果您想知道给定用户采取了哪些民意调查,您可以这样做:

SELECT poll_id FROM UserPolls WHERE user_id = 1

或者如果你想要相反的话。投票不是由特定用户进行的:

SELECT id FROM Polls WHERE Polls.id NOT IN (SELECT poll_id FROM UserPolls WHERE user_id = 1)

注意:这不是经过测试的代码,但您可以大致了解如何设计和规范化表格。