php mysqli检查用户是否投票,如果是,其他用户也可以投票

e5nqia27  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(334)

我有这个工作很好(我是一个相对新的编码),只要有一票。如何让其他用户投票?代码below:.

SELECT 
    b.id,
    b.image_1_file,
    b.your_name,
    b.your_votes,
    b.image_2_file,
    b.battling_with_name,
    b.battling_with_votes
FROM
    battles b left outer join
    votes v 
    on 
        b.id = v.battle_id 
where
    v.battle_id is null
order by 
    rand()
limit 1

我试着:

SELECT 
    b.id,
    b.image_1_file,
    b.your_name,
    b.your_votes,
    b.image_2_file,
    b.battling_with_name,
    b.battling_with_votes
FROM 
    battles b
WHERE 
    b.id NOT IN (
        SELECT 
            v.battle_id
        FROM 
            votes v 
        WHERE
            v.voters_id != '$myid'
    ) 
order by
    rand()

当然后者只会寻找 b.id 其他用户有一个id变量: $my_id 我不希望会员在投票后再看到这张图片。
非常感谢你的帮助,祝你有一个幸福的一天!
我的表结构是:
我的图像(投票)表:

id                  int(10) unsigned    NO  PRI     auto_increment  
image_1_file            varchar(40) NO              
image_2_file            varchar(40) NO              
your_name           varchar(50) NO              
your_votes          int(10) NO      0   
battlingwithname    varchar(15) NO              
battlingwithvotes   int(10) NO      0

我的投票(投票已存储)表:

id                  int(10) unsigned    NO  PRI     auto_increment  
battle_id           int(10) unsigned    NO              
vote_type           tinyint(1) unsigned NO              
voters_id           varchar(30)
fhg3lkii

fhg3lkii1#

只是使用 not in 运算符,您不必忽略已投票的投影id,因此您必须使用 not in note:another operator exist也可以使用,但我在查询中没有使用

SELECT 
    b.id,
    b.image_1_file,
    b.your_name,
    b.your_votes,
    b.image_2_file,
    b.battling_with_name,
    b.battling_with_votes
FROM
    battles b 
where b.id not in( select v.battle_id from votes v)

相关问题