SELECT * FROM `houses` WHERE `id` = '%d' AND date > CURDATE() LIMIT 1000 - почему запрос не работает? Дата, названия таблицы и столбца верные, проверял:dash2:
Вид для печати
SELECT * FROM `houses` WHERE `id` = '%d' AND date > CURDATE() LIMIT 1000 - почему запрос не работает? Дата, названия таблицы и столбца верные, проверял:dash2:
Структуру таблицы предоставь. А заодно и пример содержимого
Структура:
https://i.imgur.com/27mtmBq.png
Пример:
https://i.imgur.com/AzbiTBe.png
Нужна полная структура и полное содержимое, а не только этого столбца :)
И попробуй выполнить этот запрос прямо в браузере
Эмм, ну если сработал запрос правильно, то показывай код, который у тебя не срабатывает (код запроса + код обработки результата)
UPD: Хотя вообще непонятно зачем ты насилуешь базу данных в этом случае. Так как ты ориентируешься на дату, проверять слетевшие дома можно раз в сутки. А чтоб всё максимально упростить, то проверять можно при каждом запуске сервера/рестарте. И вся проверка будет выглядеть так:
mysql_query(dbHandle, "UPDATE houses SET owner = '-1' WHERE date > CURDATE()", false); //А тут уже запрос на загрузку данных о домах из таблицы
То бишь, сначала проверяешь, есть ли дома на продажу, продавая их, а потом уже грузишь обновлённые данные, не мучая сервер.
А чтоб вернуть 80% стоимости дома владельцу, просто составляй двойной запрос. Что-то типа:
UPDATE houses AS h, accounts AS a SET h.owner = '-1', a.money = a.money+h.price*8/10 WHERE h.owner != '-1' AND date > CURDATE() AND a.player_name = h.owner
Это не финальный запрос и не факт, что он сработает как надо, но общий принцип таков.
В общем, вместо всей той кучи кода, что ты настрочил, можно всё сделать в одном запросе :)