首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何循环遍历数据库中的数字表,直到得到输入编号php/sql的和为止

如何循环遍历数据库中的数字表,直到得到输入编号php/sql的和为止
EN

Stack Overflow用户
提问于 2015-02-16 21:52:37
回答 1查看 602关注 0票数 0

因此,基本上,如果您的数据库中有一个表,如下所示:

id ::姓名::号码

1::杰克:4

2:卡特里娜:2

3: Clyde :8

我希望循环遍历number列,将数字相加,直到达到某个数字输入,然后回显一行,其中的数字已加到一起。因此,如果您的输入为3,它将输出带有Jack的行,如果输入为5或6,它将输出Katrina,如果输入为7-14,它将用clyde输出该行。

这里我不明白的是,我如何循环遍历numbers列,将数字加起来,直到您到达特定的行为止,然后只回显该特定行。

我知道如何回显所有行并为输入字段创建条件,但我似乎无法掌握如何更进一步。

代码语言:javascript
复制
    $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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-16 22:01:31

使用自联接求出id等于或小于当前人的人数之和

代码语言:javascript
复制
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将产生如下结果:

代码语言:javascript
复制
id  name    number  sum
1   jack    4       4
2   katrina 2       6
3   clyde   8       14

然后,您可以迭代结果,检查输入的和。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28550974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档