老读者,第一次张贴,所以请原谅一个愚蠢的问题...
我的数据库中有一张表(我正在创建篮球梦幻守门员联盟选秀),其中包含选秀顺序(选秀号码、GM 提名选秀权、选拔球员、选秀时间 [有一个 12 小时的选秀窗口] 以及这个选择是否是门将选择)所以我想做的是检测下一个选择是否是门将选择,如果是,再运行一些查询,等等。我如果 GM 通常会做出选择,而只有一个守门员选择,那么可以做到这一点,但如果连续有 2 个或更多守门员选择,会发生什么情况?
因此,我没有执行一堆嵌套的 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");
然后,由于守门员选择为 1 而普通选择为 0,因此可能会执行如下循环:
WHILE $keeperPick=1 {
//Do all the stuff that would skip the row here
}
如果连续有 2 个或更多 Keeper 图片,它就会循环,否则,一旦它到达 keeperPick==0
的第一个值,它就会继续正常工作。
我的问题是我不是一个合适的程序员,我只是通过谷歌搜索和复制/粘贴以及在需要的地方进行一些调整来蒙混过关,而且只习惯于非常简单的循环。
样本表(已经做出第一个选秀权以及提名的 4 个守门员选秀权[无选秀时间]):
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
最佳答案
如果您只是想从 keeperPick = 0 和 draftPickPlayerID = 0 的数据库中获取最低的 draftPickID,为什么不使用这个数据库查询呢?
SELECT * FROM keeperLeagueDraftOrder
WHERE keeperPick = 0 AND draftPickPlayerID = 0
ORDER BY draftPickID ASC
LIMIT 1
这消除了循环或其他任何需要。它只会让您进入选秀中的下一个选秀权,需要进行实际选择。
此外,您真的应该考虑使用 mysqli_*
函数,因为不鼓励使用 mysql_*
函数。
关于PHP mySQL - 在连续特定值时循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12355301/