0

首先,让我告诉你,我是 PHP 和 MySQL 的新手,并且正在努力学习。因此,我创建了一个 web 应用程序,其中将根据会员编号资历排序的人员姓名显示随机公寓编号。公寓号码和人员姓名来自不同的表格。通过实现这样的查询,我能够获得一个随机名称-

SELECT bd, rank, name FROM person ORDER BY RAND() DESC LIMIT 1

但我需要的是 - 当我提交表格时,它会显示最高级的人的姓名和随机的公寓号码,当我再次点击提交表格时,下一个老人和随机的公寓号码等等。在那种情况下,我的查询应该是什么?我的代码看起来像这样-

if (isset($_POST['submit'])) {
$query = "SELECT house_no FROM houses ORDER BY RAND() LIMIT 1";
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_array($result))
{
    global $won;
    $won = $row['house_no'];
    echo $won;
}

$query2 = "SELECT bd, rank, name FROM person ORDER BY RAND() DESC LIMIT 1";
$result2 = mysqli_query($link, $query2);
while ($row2 = mysqli_fetch_array($result2))
{
    $winner_rank = $row2['rank'];
    $winner = $row2['name'];
    $winner_bd = $row2['bd'];
    global $winner, $winner_bd, $winner_rank;

    echo $row2['rank']. " ";
    echo $row2['name']. ", ";
    echo "Member No/".$row2['bd'];
} }
4

1 回答 1

0

我可以提供帮助,但我认为我不完全理解您试图通过代码完成的工作。尝试注释代码的每一步,而且我不知道数据库的结构是什么样的。

但是据我了解==>当我提交表格时,它会显示最高级的人的姓名和随机的公寓号码,当我再次点击提交表格时,下一个高级人员和随机的公寓号码等等.

//确保公寓不会两次发给成员。我建议您在用户表和公寓表中都有一个名为 assignment 的列,其默认值为 0

因此,当您为用户和公寓选择任何值时,将该列的值更改为 1。

//对于高级成员 //我假设你有一个用户表 :) 我认为最高级的人将在数据库中具有最低的 id 号。

选择指定列中值为 0 的所有成员,然后按 id 排序,将结果限制为 1

然后将该值保存在变量中。

//随机公寓 //我假设你有一个公寓表只需选择 id 和公寓编号,其分配值为 0 order by rand 并限制为 1,然后将其保存在变量中。

//回显变量

于 2013-11-07T08:36:59.007 回答