[英]how to loop through a database table of numbers until you have sum of an input number php/sql
所以基本上如果你的數據庫中有一個表如下所示:
id :: name :: numbers
1 :::傑克::::::: 4
2:卡特里娜::::: 2
3 ::克萊德:::::: 8
我希望循環遍歷數字列,將數字相互添加,直到達到某個數字輸入,然后回顯一行,數字已加起來。 因此,如果輸入為3,則輸出帶Jack的行,如果輸入為5或6則輸出Katrina,如果輸入為7-14,則輸出clyde行。
我無法弄清楚的是我如何遍歷數字列,將數字相加,直到到達特定行,然后僅回顯該特定行。
我知道如何回顯所有行並為輸入字段創建條件,但我似乎陷入了抓住如何進一步發展的困境。
$sql = "SELECT medlemsid, navn, lotterinr, tid FROM medlemmer";
$result = $con->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "| id: " . $row["medlemsid"]. " | - Name: " . $row["navn"]. " " ." | Lotterinr " . $row["lotterinr"]. " | Tid: ". $row["tid"]. "<br>";
}
} else {
echo "0 results";
}
if (isset($_POST['numberinput'])) {
$numbers = $_POST['numberinput'];
}
$con->close();
?>
<div id="udlodning-wrapper">
<form name="login-form" class="login-form" method="post">
<div>
<input name="numberinput" type="number" id="numberinput" placeholder="Lotterinummer" />
</div>
<div>
<input type="submit" name="submit" value="Udlodning" id="udlodning-submit" class="button-input"/><br/>
</div>
</form>
</div>
使用自聯接來查找id等於或小於當前人的人數的總和
select
p1.id,
p1.name,
p1.number,
sum(p2.number) as sum
from people p1
join people p2 on p2.id <= p1.id
group by p1.id, p1.name, p1.number;
上面的SQL會產生這樣的結果:
id name number sum
1 jack 4 4
2 katrina 2 6
3 clyde 8 14
然后,您可以遍歷結果,檢查輸入與總和
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.