Выберите следующую строку из запроса, упорядоченного по значению столбца (в mysql) каждый раз, когда я отправляю форму

Прежде всего, позвольте мне сказать вам, что я довольно новичок в PHP и MySQL и пытаюсь учиться. Поэтому я создал веб-приложение, в котором случайный номер квартиры должен отображаться против имени человека, упорядоченного по старшинству членского номера. Номер квартиры и ФИО лиц берутся из отдельных таблиц. Мне удалось получить случайное имя, выполнив такой запрос:

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'];
} }

person Touhid Rahman    schedule 07.11.2013    source источник


Ответы (1)


Я могу помочь, но я не думаю, что полностью понимаю, чего вы пытаетесь достичь с помощью кода. Попробуйте прокомментировать каждый шаг кода, и, кроме того, я не знаю, на что похожа структура базы данных.

Но насколько я понимаю ==> когда я отправлю форму, она покажет имя самого старшего человека и случайный номер квартиры против него, когда я снова нажму, чтобы отправить форму, тогда следующий старший человек и случайный номер квартиры и так далее .

//чтобы квартира не выдавалась участнику дважды. я предлагаю, чтобы у вас был столбец с именем назначенный как в таблицах пользователей, так и в таблицах апартаментов, который будет иметь значение по умолчанию 0

поэтому, когда вы выбираете любое значение для пользователя и квартиры, измените значение этого столбца на 1.

// для старшего члена // Я предполагаю, что у вас есть таблица пользователей :) Я думаю, что самый старший член будет иметь самый низкий номер идентификатора в базе данных.

Выберите все элементы, которые имеют значение 0 в назначенном столбце, затем упорядочите по идентификатору, ограничьте результат до 1

затем сохраните это значение в переменной.

// для случайной квартиры // Я предполагаю, что у вас есть таблица для квартир. Просто выберите идентификатор и номер квартиры, которые имеют присвоенное значение 0 порядка рандом и ограничение до 1, а затем сохраните его в переменной.

//выводим переменные

person Olufemi Israel Olanipekun    schedule 07.11.2013