Max55555, самый оптимальный вариант - серверное решение на java + клиент на javascript (получить данные и работать с dom)
Если нужно часто обновлять данные (выводить актуальный курс по мере изменения) - websocket client/server.
Можно rest-api на сервере, клиентом получать через XMLHttpRequest, на основе этого можно сделать long pooling.
joookleol, как часто обновляются данные?
Кешировать можно и на короткий промежуток времени, чтобы несколько активных соединений (читай посетителей) не лезли постоянно в БД.
Ну и смотрите explain ваших запросов.
Если у вас запросы без limit то это может очень сильно влиять на их производительность.
Ну и не факт вообще что именно бд является узким местом. Может у вас сложные расчеты есть на каждый ajax-запрос?
Либо вообще не в них дело.
Используйте профилирование
naum-ov, и еще замените mysql_* на mysqli_* (благо они обратно совместимы)
Ибо mysql-расширение давно устарело и небезопасно (плюс удалено в php 7+)
А еще лучше - используйте PDO для работы с БД
naum-ov, судя по всему в users.lots сериализованные данные.
Так делать не нужно %)
Сделайте таблицу связей users_losts(user_id, lot_id).
А по сабжу в запросе SELECT * FROM `lots` WHERE `id`='$lotnumber'" могут быть пустые данные, подозреваю проблема тут
Илья Родионов, вам нужен обработчик (controller/action), который будет обрабатывать все ссылки вида /download/(.*), который будет искать файл, показывать рекламу, после этого перенаправлять на скачивание файла (с помощью js, meta=refresh, неважно).
Не знаю как это решается в указанной cms, но думаю должно быть что-то типа модулей.
vnpp, использовать https://github.com/yiisoft/yii2-debug
который покажет вам что пришло в запросе.
P.S. var_dump не является хорошей практикой и на dev. Используйте xdebug
Больше не вижу очевидных решений