Сергей, а теперь вы путаете отладку с оптимизацией :)
Оптимизация - это выяснение, почему код работает медленно.
А отладка - это буквально и есть выяснение, почему код работает неправильно. Судя по тому, что вы ставите её на одну доску с оптимизацией, то вы это себе представляете как некий завершающий этап. "вот у нас код работает, теперь можно заняться "отладкой и оптимизацией". Ну нет же! :)
Отладкой мы занимаемся, когда код не работает или работает неправильно. То есть в процессе написания.
Вам надо серьёзно понять, что отладка занимает большую часть времени программиста. Никакой код, кроме самого примитивного, не работает сразу как надо. И поэтому учиться отлаживать код все равно придется.
Черновой вариант у вас уже был. Дальше именно отладка. То есть запуск, кода, его выполнение.
Я ведь не глазами все эти вещи увидел, которые написал в ответе.
Я загрузил код в одну из онлайн оболочек для РНР и стал выводить значения переменных. И после этого уже стало понятно.
Сергей, ваша проблема в том, что вы не понимаете отладку, и для вас это то же самое, что "учи матчасть".
но это не одно и то же.
большую часть времени программиста занимает отладка.
программирование - оно вообще не про написать код. оно про продумать алгоритм, и потом его отладить. А написать код - это так, незначительный промежуточный этап.
когда вы это поймете, то поймете смысл комментариев, которые вам тут все пишут. Чисто по злобе, конечно же.
Ivan, эта идея вообще не работает.
правильную идею подсказал Akinа, с сортировкой.
Не нужно никогда помечать решением ответ, который у вас не работает
Нужно иногда думать не только о себе, но и о других людях, у которых будет такой же вопрос. И которые потратят кучу времени на нерабочее решение
ComodoHacker, а вы уверены в своей трактовке вопроса? Не выяснив далали, а сразу кинувшись строчить ответ? Который и не ответ вовсе, а так - досужие рассуждения?
так сортировка не по id
ему надо нужную страницу найти.
скажем, запись при сортировке по названию будет 55 по счету.
при выводе по 10 записей на страницу это будет 6-я.
id тут запоминай-не запоминай, но номер страницы это никак не поможет получить
mr.bob, если я правильно понял проблему, то сортировку всегда делать по поле, id и условие соответственно делать
SELECT count(*)+1 FROM players WHERE score > ? OR (score = ? AND id < ?)
в общем как написано тут https://phpdelusions.net/articles/rank_based_on_sc...
boronick, послушайте, зачем вам вообще база данных? Если всё так накладно.
Храните в текстовом файле, через палочку. Тогда вообще ни одного запроса не понадобится. Вот где профит-то!!!
Самый ужас здесь, конечно, это "а можно в отдельной таблице, но это накладнее".
Удивительно экономный народ - эти программисты.
Нижнее бельё они носят, хотя это очевидно "накладнее", чем без трусов ходить.
А вот о бедной базочке данных прям заботятся, как бы ей "накладнее" не вышло.
alexalexes, насчет "читабельности" я не уверен. Следует помнить, что бессмысленная фича "num_rows" существует только в mysql, другие базы данных как-то обходятся без неё.
запросить count(*) будет, конечно, более осмысленным действием, но опять же, чисто технически это ничем не лучше фетча запрошенной строки.
а обработку ошибок надо отдать исключениям