$time = microtime(1); $this->result = @mysql_query( $query, $this->dbh ); self::queriesTime[$this->num_queries]['time'] = (microtime(1)-$time); self::queriesTime[$this->num_queries]['query'] =$query; $this->num_queries++;//строка долна идти после получения времени
В начале класса объявляем свойство queriesTime, которое является массивом.
private static $queriesTime = array();
То есть это на выходе получиться массив, где в каждой ячейки будет лежать еще 2 ячейки со временем запроса, и с самим запросом.
Теперь создадим метод, который будет все это дело логировать.
public static function myCustomLoger() { $output = ''; foreach(self::queriesTime as $k=>$v) { $time = $v['time']; $query = $v['query']; //Я запишу все это дело в файл $output .= "$time<qtdelimiter>$query<linesdelimiter>"; } $fileName = $_SERVER['DOCUMENT_ROOT'] .'/mylogs/' .date('Y-m-d', time()) .'.log';//название файла - текущая дата формата ГГГГ-ММ-ДД, то есть для каждых суток создается отдельный файл. file_put_contents($fileName, $output, FILE_APPEND); }
Ну и финал. В конце файла index.php(можно еще к админке прикрутить) вызываем наш метод myCustomLoger.
$wpdb->myCustomLoger();
Я писал в файл, так как это дело быстрей записи в БД. При желании можно сделать скрипт, который по крону в начале новых суток обработает файл с логами за прошедшие сутки и запишет данные в БД. Ну а дальше уже можно написать интерфейс для работы с логами из БД.
Помимо время запроса и текста запроса можно добавить тип запроса(селект, инсерт, делит, апдейт), количество символов в запросе, страницу, где выполняется запрос и т.д. Вообщем все что захотите.
Если интересуют только медленные запросы, то надо так:
$time = microtime(1); $this->result = @mysql_query( $query, $this->dbh ); $time = (microtime(1)-$time); if ($time > 0.5) { self::queriesTime[$this->num_queries]['time'] = $time; self::queriesTime[$this->num_queries]['query'] = $query; } $this->num_queries++;//строка долна идти после получения времени
0.5 - время в секундах, то есть если наш запрос выполнялся дольше 500 милисекунд, то мы его записываем
int mysql_insert_id ([ resource $link_identifier ] )
mysql_insert_id() возвращает ID, сгенерированный колонкой с AUTO_INCREMENT последним запросом INSERT к серверу, на который ссылается переданный функции указатель link_identifier . Если параметр link_identifier не указан, используется последнее открытое соединение.
opanas1: fisherman1, здравствуйте! скажите, а возможно ли сотрудничество - вы пишите статьи и вы их же и размещаете на сайте? готов предложить сотрудничество....
Также интересует этот вопрос. Есть двиг(самопис, интерфейс дружелюбный). Необходимо постить Вами же сделанный рерайт + найти картинку(-и). Исходники надо тоже искать самостоятельно. Сколько $/тыщезнак возьмете за такое дело? Ответ если можно в личку, буду очень признателен.
DiAksID: хотелка у ТС абсолютно верная и самими ПыСы рекомендуемая - отдавать ботам только уник-контент безо всяких сквозняков. тогда и всяко разные sitemap превращаются из довеска в абсолютно необходимый инструмент...
Зачем для этого использовать аякс? Если все можно сделать на JavaScript или Jquery.
Если бы ВП не был столь популярен, то и вправду бы подумал, что готовых решений нет, а тут...
Есть файл1, информация в котором должна динамически меняться в зависимости от условий. Есть файл2 на сервере, который разруливает все это дело.
Пример.
На странице у Вас 2 селекта - город и район.
Вам нужно чтобы в зависимости от выбранного города менялось значение район. Так как тащить с сервера весь массив с городами и районами полный бред, то мы используем технологию AJAX.
Ну то есть для Москвы показывается бутово, новокасино, а для бобруйска отшиб, гетто и т.д.
На событие onChange селекта с городом мы вешаем тот самый аякс, и когда юзер меняет город, этот запрос посылается АЯКСом на сервер(передается город). Файл, к которому идет обращение смотрит хранилище(БД, файлы, не суть) и выбирает районы которые принадлежат этому городу, и возвращает их нашей странице. Страница уже во втором селекте показывает те районы, которые она получила с сервера от файла2.
/includes/wp-db.php
Нас интересует строка
Перед ней пишем
после нее
В итоге получаем
В начале класса объявляем свойство queriesTime, которое является массивом.
То есть это на выходе получиться массив, где в каждой ячейки будет лежать еще 2 ячейки со временем запроса, и с самим запросом.
Теперь создадим метод, который будет все это дело логировать.
Ну и финал. В конце файла index.php(можно еще к админке прикрутить) вызываем наш метод myCustomLoger.
Я писал в файл, так как это дело быстрей записи в БД. При желании можно сделать скрипт, который по крону в начале новых суток обработает файл с логами за прошедшие сутки и запишет данные в БД. Ну а дальше уже можно написать интерфейс для работы с логами из БД.
Помимо время запроса и текста запроса можно добавить тип запроса(селект, инсерт, делит, апдейт), количество символов в запросе, страницу, где выполняется запрос и т.д. Вообщем все что захотите.
Если интересуют только медленные запросы, то надо так:
0.5 - время в секундах, то есть если наш запрос выполнялся дольше 500 милисекунд, то мы его записываем
ЗЫ. многа букав получилось, уж извиняйте:)
Все делаем в ПХПМайАдмине:
Для начала
Смотрим сколько юзеров ниразу не входили в свой аккаунт.
Если их много, то следующий шаг
удаление юзеров, этих самых юзеров
int mysql_insert_id ([ resource $link_identifier ] )
mysql_insert_id() возвращает ID, сгенерированный колонкой с AUTO_INCREMENT последним запросом INSERT к серверу, на который ссылается переданный функции указатель link_identifier . Если параметр link_identifier не указан, используется последнее открытое соединение.
Это взято из мануала.
Хотел обратиться к ТСу, но что-то напрягает ситуация с Mark-M.
ТС, как прокомментируете эту ситуацию?
$i=0;
foreach ($xml->folder->file as $item) {
if ($i > $maxLineOnPage)
break;
echo "<tr>";
echo "<td>", $item->link, "</td>";
echo "<td>", $item->size, "</td>";
echo "</tr>";
$i++;
}
fisherman1, здравствуйте! скажите, а возможно ли сотрудничество - вы пишите статьи и вы их же и размещаете на сайте? готов предложить сотрудничество....
Также интересует этот вопрос. Есть двиг(самопис, интерфейс дружелюбный). Необходимо постить Вами же сделанный рерайт + найти картинку(-и). Исходники надо тоже искать самостоятельно. Сколько $/тыщезнак возьмете за такое дело? Ответ если можно в личку, буду очень признателен.
хотелка у ТС абсолютно верная и самими ПыСы рекомендуемая - отдавать ботам только уник-контент безо всяких сквозняков. тогда и всяко разные sitemap превращаются из довеска в абсолютно необходимый инструмент...
Зачем для этого использовать аякс? Если все можно сделать на JavaScript или Jquery.
Если бы ВП не был столь популярен, то и вправду бы подумал, что готовых решений нет, а тут...
Так Вам не аякс нужен а JavaSript либо просто обернуть меню так:
<noindex><div class="menu">your menu</div></noindex> - вариант для яндекса.
И где у Вас там меню? Это то что сверху 2 ссылки?
http://bloginblog.ru/plaginy/wordpress-plugin-jquery-plavayushhee-menyu.html
http://beloweb.ru/wp/jquery-plagin-vertikalnogo-akkordeon-menyu.html
http://wp-kama.ru/id_800/menyu-na-jquery.html - не тока для ВП. Если сможете - используйте.
Вам проще самому искать меню в ПС и смотреть, что нравиться, а что нет.
ЗЫ. использование аякса тут не оправдано. ИМХО. Хотя, кто как хочет, так и...... делает:)
Так, ок, пойдем от обратного. Зачем Вам меню вешать на АЯКС? Какие цели преследуете. Расскажите по буквам, как первокласснику.
Вот Ваш AJAX, почитайте.
Если кратко и на пальцах:
Есть файл1, информация в котором должна динамически меняться в зависимости от условий. Есть файл2 на сервере, который разруливает все это дело.
Пример.
На странице у Вас 2 селекта - город и район.
Вам нужно чтобы в зависимости от выбранного города менялось значение район. Так как тащить с сервера весь массив с городами и районами полный бред, то мы используем технологию AJAX.
Ну то есть для Москвы показывается бутово, новокасино, а для бобруйска отшиб, гетто и т.д.
На событие onChange селекта с городом мы вешаем тот самый аякс, и когда юзер меняет город, этот запрос посылается АЯКСом на сервер(передается город). Файл, к которому идет обращение смотрит хранилище(БД, файлы, не суть) и выбирает районы которые принадлежат этому городу, и возвращает их нашей странице. Страница уже во втором селекте показывает те районы, которые она получила с сервера от файла2.