[umka]

[umka]
Рейтинг
456
Регистрация
25.05.2008

Если "лучше" для вас значит "быстрее и надёжнее", то SAS в raid 1

Если "лучше" для вас значит "экономичнее", то SATA в raid 5

7910:
Например, при поиске по слову "героин" выводится много сотен легальных сайтов со словами "героиня" и т.д.
Есть ли какие-то более эффективные методы решить эту задачу?

Тщательней изучать регулярные выражения.

7910:
Где узнавать какие препараты из продаваемых клиентами легальны, а какие запрещены?

Требуйте сертификаты.

UPDATE some_table SET some_field=REPLACE(some_field,'сайт.ру//новость.хтмл','сайт.ру/новость.хтмл');

Видимо, ваш айпишник временно (если не врут в тексте ошибки) в чёрном списке.

Устранять только с помощью саппорта майл.ру (или сменить айпишник).

So1:
Не используйте никогда SQL_CALC_FOUND_ROWS (убивает использование индексов).

С какого перепугу?

mysql> explain select sql_calc_found_rows * from user_data where user_id>1000 limit 10,10;
+----+-------------+-----------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+-------+---------------+---------+---------+------+------+-------------+
| 1 | SIMPLE | user_data | range | user_id | user_id | 4 | NULL | 1457 | Using where |
+----+-------------+-----------+-------+---------------+---------+---------+------+------+-------------+
1 row in set (0,00 sec)

Всё используется.

Ссылка на документацию, в которой SQL_CALC_FOUND_ROWS рекомендуется именно для таких случаев:

http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

So1:
А вообще не совсем понятно. Если вы исполняете запрос
SELECT * FROM table WHERE ... GROUP BY artist
,
то посчитать кол-во строк не составит труда в PHP (насколько я понял), верно?

Нет. Функция mysql_num_rows() вернёт лишь количество строк в результате, но не общее количество строк, участвовавших в группировании.

То же самое, если используется LIMIT.

So1:
И собак (@) в PHP не используйте никогда - сжирает дополнительно время + ошибки отлавливать сложней становится.

Сжирает времени не больше чем дискового пространства :)

Время тратится разве что на парсинг и переключение флагов. Разница становится существенна только при таких масштабах, как у вас (1000000 операций). Столько собак на всех сайтах на сервере не найдётся.

А способ обработки ошибок — дело каждого. Конкретно в данном случае (в моём примере) считаю собаку уместной :)

DenisVS:
Что-то не могу найти, нужно буквально следующее:
Сейчас по умолчанию в каждой папке видится содержимое при отсутствии индекса. Приходится заряжать .htaccess Options -Indexes, чтобы была ошибка 403. Как сделать это для всего сервера?

Написать то же самое в httpd.conf или в корневом .htaccess (в корне сайта)

SQL_CALC_FOUND_ROWS вам в помощь

[umka] добавил 28.09.2010 в 00:26

$q=mysql_query("SELECT SQL_CALC_FOUND_ROWS field1, field2, ... FROM table WHERE ... LIMIT ...");
$count=0+@mysql_result(mysql_query("SELECT FOUND_ROWS()"),0,0); // общее количество страниц, попавших под условие WHERE

Далее разбираем результат $q любым привычным способом.

pimandr:
Не, ваш вариант кроме 400 ничего не дает.

Попытался сделать примерно так:
RewriteCond %{HTTP_HOST} (site1\.ru+)$
RewriteRule (.*) /site1/$1 [QSA]

не работает, та же четырехсотая ошибка

Интересно, почему у меня мой вариант работает :)

Файлики сайтов должны размещаться в директориях с названиями "site1.ru", "site2.ru" и т.д.

Т.е. в директории DocumentRoot, в которой лежит .htaccess, в ней же создайте эти директории и залейте в них файлики.

RewriteCond %{HTTP_HOST} ([a-z0-9\-]+\.[a-z]+)$
RewriteRule (.*) /%1/$1 [QSA]

p.s. куда отправлять денежку?

Когда-то давно развлекался тем же самым.

Была цель вывести поверх флэша слой со своей ссылкой, чтобы считать клики по баннерам.

Эксперименты успехом не увенчались, т.к. в разных браузерах флэш выводится по-разному. В некоторых он выводится плагином просто поверх всего, и первым ловит события от мышки, даже если поверх него есть слой с z-index 100500 :)

Всего: 6067