php - 如何检查一个查询是否存在多个值

标签 php mysql

基本上,我正在为论坛的用户构建一个自动奖励系统。 它会做的是检查它们是否符合 IE 帖子、Karma 等奖项的标准…… 如果成员(member)符合此条件,则允许他们自行发行..

我面临的一个问题是我想查询 MySQL 数据库一次,并对每个奖项进行多次检查,看看他们是否已经拥有它。 如果不允许他们通过单击按钮自行颁发奖项。

这是我目前的情况

//Query Member Awards DB to check if we already have this Award
    $query2 = $smcFunc['db_query']('', '
        SELECT id_award, id_member
        FROM {db_prefix}awards_members
        WHERE id_member = {int:id_prof}',
            array(
                'id_prof' => $user_info['id'],
            )
    );
    $info2 = $smcFunc['db_fetch_assoc']($query2);

    echo $info2['id_award'];

    if ($info2['id_award'] == '27')
        echo 'exists';

我的 table 是这样的

uniq_id  id_award id_member date_received favorite
    44      29        1       2011-11-02    1
    31      21        1       2011-11-02    0
    41      32        1       2011-11-02    0
    43      27        1       2011-11-02    0
    34      18        1       2011-11-02    0
    35      38        1       2011-11-02    1
    39      31        1       2011-11-02    0
    40      30        1       2011-11-02    1

现在基本上在下面我将有一堆具有不同 ID 的奖项 我想能够说如果存在不显示按钮.. 现在如果只检查一个奖项就好了,但我需要检查几个奖项。

我不想使用 where 子句进行多次查询以查看该成员是否已获得此奖项。

有没有一种更简单的方法,这样我只需要一个查询就可以检查多个奖项..

if ($info2['id_award'] == '1')
            echo 'exists';

if ($info2['id_award'] == '2')
            echo 'exists';

等等

我对最好的方法感到很困惑。 任何帮助都会很棒。

编辑:

是的,基本上它看起来像这样..我将使用 ajax 来提交数据..

if ($info2['id_award'] != '27') && ($info['karma_good'] >= '100') {
        echo '
        <form id="karma_god" method="post">
            <input type="hidden" id="recipient_to" name="recipient_to" value="' . $info['id_member'] . '" size="32" />
            <input type="hidden" id="award" name="award" value="28" size="32" />
            <input type="hidden" id="year" name="year" value="' . date('Y') . '" size="32" />
            <input type="hidden" id="month" name="month" value="' . date('n') . '" size="32" />
            <input type="hidden" id="day" name="day" value="' . date('d') . '" size="32" />
            <span>You have above 100 Karma! A New Award Awaits. </span><button class="button"> <img src="http://www.uniquez-home.com/awards/28.gif" alt="" style="vertical-align:bottom;"> Karma God </button>
        </form>';

很明显,还有几个奖项 2 在这个下面......

最佳答案

你可以这样做:

Select * FROM awards_member WHERE id_award in (1,2,3,4,5) AND id_member = 5

只需添加您需要检查的额外奖励 ID

根据查询的结果,您可以遍历每个结果并检查尚未给出哪个奖励 ID 并在需要时显示按钮。

关于php - 如何检查一个查询是否存在多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7991484/

相关文章:

php - 通过 PHP 以编程方式备份​​(和通过电子邮件发送)完整的 MySQL 数据库

php - 您可以将使用 imagecopyresized() 的图像保存到 MySQL 吗?

MySQL 索引不工作(用例特定场景)

Mysql查询涉及多张表和一个OR语句

mysql - 如何在MySQL查询中接受两个正确答案?

php - 从 MYSQL 表中选择所有字段的性能影响

带有一个提交按钮的php多搜索文本框

php - 如何在 MySQL 中管理 MySQL 连接?

php - 执行linux命令并将输出存储在php数组中

mysql - 了解分布