簡體   English   中英

如何循環數字數據庫表,直到你有一個輸入數字的總和php / sql

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM