вы можете сделать это в одном запросе следующим образом:
Трюк
select @a:=@a+1, u.*
from
users u
join (select @a:=0) a
или быть хитрым и использовать хранимую процедуру, поэтому это всегда один вызов: P
Хранимая процедура
drop procedure if exists list_users;
delimiter #
create procedure list_users()
begin
set @a = 0;
select @a:=@a+1, u.* from users u;
end #
delimiter ;
call list_users();
PHP скрипт
$conn = new mysqli("localhost", "foo_dbo", "pass", "foo_db", 3306);
$result = $conn->query("call list_users()");
while($row = $result->fetch_assoc()){
...
}
$result->close();
$conn->close();