необходимо определить числовое значение смещения строки, используя значение столбца в отсортированной таблице.MySql Определить смещение строки из результата запроса
Учитывая, я знаю уникальное имя пользователя ($ username) в интересующей строке.
, например. $username = "SnowWhite";
Оценка: Убедитесь, что имя пользователя $ находится в базе данных и будет представлено в результате моего первоначального запроса. Вот мой первоначальный запрос (который работает):
$query = "SELECT ALL username,ticket_number, queue_time FROM members WHERE queue_time !=0 ORDER BY queue_time";
$result = mysql_query($query);
Что работает это перебор PHP из $result
массива для значения $username
.
Я хотел бы заменить логику поиска php на запрос (или переработку вышеуказанного запроса), который хранит целочисленное значение смещения строки в пределах $result
для значения столбца имени пользователя $username
в переменной, например, $offset
.
Например, если SnowWhite находится в третьей строке $result
Я ожидаю, что $offset == 2
(предполагая смещение индекса строки, начиная с 0).
В конечном счете (это работает) Я обновляю значение «ticket_number» выбранной строки, которое должно быть == $offset+1
. по:
$query="update members set ticket_number='$offset+1' where username='$username'";
mysql_query($query);
Текущая рабочая логика
$query = "SELECT ALL username,ticket_number, queue_time FROM members WHERE queue_time !=0 ORDER BY queue_time";
$result = mysql_query($query);
$i = 0;
while ($row = mysql_fetch_array($result)) {
if ($row[username] == $userinfo) //-- compare usernames
{
++$i;
$query="update members set ticket_number='$i+1' where username='$userinfo'";
mysql_query($query);
break;
}
++$i;
}
mysql_free_result($result);
имя пользователя ticket_number queue_time Doc 0 0 1-3 не в отсортированном результате Сердитый 0 0 Happy 0 0 Сонный 1 111 Следующий ni отсортированный результат Bashful 2 222 Sneezy 0 333 SnowWhite ??? 444 Это текущий пользователь (назначить ??? = 4) Dopey 0 555 EvilQueen 0 666
«ВСЕ» - это ПО УМОЛЧАНИЮ, правильно, поэтому нет необходимости (и даже немного запутать), чтобы включить его здесь. – Strawberry