Php 在数据库中循环
我想循环遍历我的players表,并为每个players运行以下代码,我是否可以使用以下选项或是否使用了其他错误选项,我需要它运行所有if语句以查看是否存在匹配,然后根据需要更新数据库。基本上,我需要知道的是,我是否在正确的轨道上,或者我应该考虑使用do、while、foreach、else、elseif、switch等。下面的代码只是一个示例。只是想理解这个理论Php 在数据库中循环,php,loops,mysqli,Php,Loops,Mysqli,我想循环遍历我的players表,并为每个players运行以下代码,我是否可以使用以下选项或是否使用了其他错误选项,我需要它运行所有if语句以查看是否存在匹配,然后根据需要更新数据库。基本上,我需要知道的是,我是否在正确的轨道上,或者我应该考虑使用do、while、foreach、else、elseif、switch等。下面的代码只是一个示例。只是想理解这个理论 <?php $getresult = $conn->query('SELECT id FROM users'); wh
<?php
$getresult = $conn->query('SELECT id FROM users');
while ($getrow = mysqli_fetch_array($getresult); {
$player = $getrow['id'];
$result = $conn->query("SELECT * FROM scores WHERE player_id='$playerId' ORDER by points ASC");
$row = $result->fetch_array();
$row_count = mysqli_num_rows($result);
if ($row_count...) {
}else{
if ($row_count...) {
}else{
if () {
}else{
}
//SQL update statement would go here..
}
您可以从PlayerTable中选择id,然后在while循环中获取player_id,然后将其余代码移动到该循环中。这就是你要找的还是我遗漏了什么
// $player = $_SESSION['id'];
$playersResult = $conn->query('SELECT id FROM playersTable');
while ($playersRow = mysqli_fetch_array($playersResult); {
$playerId = $playersRow['id'];
$result = $conn->query("SELECT * FROM scores WHERE player_id='$playerId' ORDER by points ASC");
$row = $result->fetch_array();
$row_count = mysqli_num_rows($result);
if ($row_count >= 20) { // checks that at least 10 rows available
$result = $conn->query("SELECT points FROM scores WHERE player_id='$playerId' ORDER by points ASC LIMIT 10"); // select 10 lowest points
while ($row = mysqli_fetch_array($result)) {
$total = array($row['points']);
$sum = array_sum($total);
echo $sum;
}
}
else if ($row_count>=10) { // checks that at least 10 rows available
$result = $conn->query("SELECT points FROM scores WHERE player_id='$playerId' ORDER by points ASC LIMIT 5"); // select 5 lowest points
while ($row = mysqli_fetch_array($result)) {
$total = array($row['points']);
$sum = array_sum($total);
echo $sum;
}
}
//SQL update statement would go here..
}
您可能还想检查求和逻辑,但不查看表结构,我认为数组_sum不会满足您的要求。您可以使用SQL总和为您进行计算。看起来像是一个为我做的问题。VTCA一点合理的代码缩进对理解代码也有很大帮助。更重要的是,调试itSo中的明显错误,我们需要底部5或底部10最低分数的总和,这取决于行数是否少于或多于20行。或者,如果分数低于10分,我们什么也不做。这是对的吗?RiggsFolly-没有一个为我做的问题,更多的是做我应该使用的,或者我看这个都错了,为代码显示道歉,仍然试图找出论坛。2美分提姆,你说得有点对。基本上,我想在我的用户表中循环,对于它找到的每个用户,相应地应用if语句。与其说是答案,不如说是评论!当心下行银行,我才刚开始投稿。这类东西有参考资料吗?谢谢,不用担心总数,因为我已经收到了这方面的帮助,并进行了相应的更新,现在效果很好。所以基本上我可以使用while语句在users表中循环,然后将找到的每个用户id应用到其中的if语句?