я бы делал столбец «категория» и не парился. а случайную запись легко можно реализовать создав в мемкеше, скажем, массив idшников по каждой категории, сделав ему rand() и pop'ать из него по одному элементу пока не кончатся. потом пересоздать массив и перемешать.. и т.д. таким образом вы обязательно покажете все статьи по одному разу. вместо мемкеша можно таблицы в мемори юзать...
Так прочвите чутка фантазии. представьте, что вы купили 390 кастрюль. и вам понадобилась кастрюлька эмалированная, объемом 2.5 литра. с короткими ручками и крышкой с отверстием для выпуска пара. Вы ее найдете, но через три дня.
Так и тут. Простой поиск по 500 таблицам - это запрос, включающий в себя 500 таблиц. в приведенном вами примере для сброса паролей всем пользователям у вас будет
Лично мое мнение, вам нужно подучить русский, математику и php (причем именно в таком порядке)
Ваша проблема в невозможности выразить словами цель, потому вам сложно создать нормальный алгоритм для ее достижения.
- то есть.
- 0,100,20 - не сортировка.
- lastgamer - последний игравший в вашу игру пользователь, а не последний по рейтингу.
- $rating = rand(0,5) * (2,3,4,5) Что это. Почитайте про дроби, проценты.
Оформлять нынче принято в класс с методом подсчета очков (и проверку на минус и ноль засунуть в него). Потом сделать тесты, что этот метод возвращает адекватные числа при разных параметрах. Потом метод для рейтинга, так же с проверками внутри и тестами.
> Просто я не могу себе представить качественный продукт, который писали тысячи человек с разным уровнем знаний.
Нормально, нужно элементарно вести общий стиль и не давать возможности говнокодить. Современные движки не позволяют гадить физически.
Например, когда в объект не передается соединение с бд, а только менеджер репозитариев. И прогер вынужден делать свой репозитарий, свою Энтити, и всю "обвязку", чтобы создать/удалить сущность в бд. Вместо "банального" формирования
$query= "insert into".$table." (name) values (". $_GET['name'].")";
mysql_query($query);
...
Да, вместо двух строк получается 64, но... оно того стоит.
а) Их нет по тому что их нет... вы где-то проверяете, что год 2010 нормально отработался прежде, чем делать по 2009? Нигде. Поэтому нет гарантий. wget может упасть посередине цикла с "too many connections" и пропустить пару лет. Никто не узнает.
2) По тому что вы безосновательно увеличили стек технологий (crontab->perl->wget->php->...)
3) можно так же дергать cron-ом php-скрипт раз в минуту, а после заверешения скрипта складывать отработанный год куда-то (хоть в файлик на диске, хоть к memcache, хоть в базу данных), а в следующий раз начинать опять с него. Только надо еще блокировку сделать чтобы два раза один и тот же год не обрабатывать. Или посмотреть готовые решения с очередью задач. Но мне кажется вам бы вполне хватило бы цикла по годам внутри файла. Если вы там не делаете здоровенные excel-отчеты =)
Без обид, оставьте как есть если все работает и вас устраивает. Это главное. Нет такого понятия как "правильно")
мне кажется, что это:
а) не дает гарантии, что скрипты выполнятся последовательно.
б) через жопу.
в) противоречит условию задачи ("помимо использования CRON"(с)).
$sql находится "внутри" функции, и "снаружи" ее не видно.
И это не резко, это суровая правда. Не понимая даже базисных вещей работы с языком, вы беретесь разрабатывать инструмент. А это всегда сложнее, чем взять готовый инструмент и получить результат. Всегда пожалуйста и удачи в познании красивого и простого языка)
site.ru/http://rapidshare.de/1000GBfile.gz?/files/css