PHP mySQL - 循环连续的特定值

时间:2012-09-10 15:58:41

标签: php mysql loops

长时间读者,第一次发布海报,请原谅可能是一个愚蠢的问题......

我的数据库中有一张桌子(我正在创建一个篮球幻想守护者联赛选秀),其中包含选秀顺序(选秀号码,GM提名进行选秀,选择球员,选择的时间[有一个12小时选秀窗口]以及选秀权是否是一个门将选择)所以我要做的是检测下一个选秀权是否是一个门将选择,如果是,再运行一些查询等等我如果只有一个守门员选择通常会做出选择,那么可以做到这一点,但如果连续两个或多个守门员选择会发生什么?

因此,我没有做一堆嵌套的IF语句,而是运行一个查询,从表中选择下一个选择并检查它是否是守门员选择3或4次(见下文):

$query1Counter = "SELECT counterID FROM draftCounter";
$query1Result=mysql_query($query1Counter);
$livePickCount=mysql_numrows($query1Result);

然后:

if ($livePickCount != "") {
    //Do stuff then:
    //run $query1Counter again, then:

    if ($livePickCount != "") {
        //Do stuff then:
        //run $query1Counter again

        if ($livePickCount != "") {
            //Do stuff then:
            //run $query1Counter again
        }
    }
}

我希望我可以从表中提取所有结果,如:

query = SELECT * FROM keeperLeagueDraftOrder;
$result=mysql_query($query);

拉出特定的列值,如:

$keeperPick=mysql_result($result,$i,"keeperPick");

然后,既然Keeper Pick为1,普通选择为0,可能会执行以下循环:

WHILE $keeperPick=1 {
    //Do all the stuff that would skip the row here
}

因此,如果连续存在2个或更多Keeper图片,它会循环播放,否则,一旦它到达keeperPick==0的第一个值,那么它就是正常业务。

我的问题是我不是一个合适的程序员,我只是通过谷歌搜索和复制/粘贴以及需要的一些调整来捏造我的方式,并且只用于非常简单的循环。

示例表(已经制作了第一个选秀权以及4个Keeper选秀权提名[没有选秀时间]):

draftPickID  draftPickPlayerID  draftPickGM  keeperPick  draftTime
1            72                 5            0           2012-09-10 22:04:24
2            10                 3            1           0000-00-10 00:00:00
3            32                 2            1           0000-00-10 00:00:00
4            0                  6            0           0000-00-10 00:00:00
5            0                  1            0           0000-00-10 00:00:00
6            5                  4            1           0000-00-10 00:00:00
7            44                 4            1           0000-00-10 00:00:00
8            0                  1            0           0000-00-10 00:00:00
9            0                  6            0           0000-00-10 00:00:00
10           0                  2            0           0000-00-10 00:00:00

1 个答案:

答案 0 :(得分:1)

如果您只想从keeperPick = 0和draftPickPlayerID = 0的数据库中获取最低的draftPickID,为什么不直接使用此数据库查询?

SELECT * FROM keeperLeagueDraftOrder
WHERE keeperPick = 0 AND draftPickPlayerID = 0
ORDER BY draftPickID ASC
LIMIT 1

这消除了对循环或其他任何需要。它只是让你进入草案中的下一个选择,需要进行实际选择。

此外,您应该真正考虑使用mysqli_*函数,因为不鼓励使用mysql_*函数。