Jump to content

CoDy

User
  • Posts

    381
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by CoDy

  1. Это не совсем запрос. Но как вариант рассматривать можно. DELIMITER ; DROP TABLE IF EXISTS `test_table`; CREATE TABLE `test_table` ( `date_time` DATETIME NOT NULL, PRIMARY KEY (`date_time`) ); INSERT INTO `test_table` VALUES ('2000-01-01 00:00:00'), ('2000-01-01 00:01:00'), ('2000-01-01 00:02:00'), ('2000-01-01 00:05:00'), ('2000-01-01 00:06:00'), ('2000-01-01 00:07:00'); DELIMITER $$ DROP PROCEDURE IF EXISTS `test`$$ CREATE PROCEDURE `test` (IN time_interval INT UNSIGNED) BEGIN DECLARE done BOOL DEFAULT FALSE; DECLARE datetime_previous DATETIME DEFAULT NULL; DECLARE datetime_current DATETIME DEFAULT NULL; DECLARE cur CURSOR FOR SELECT `date_time` FROM `test_table`; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; CREATE TEMPORARY TABLE `temp_result` SELECT `date_time` FROM `test_table` LIMIT 0; OPEN cur; FETCH cur INTO datetime_previous; WHILE done = FALSE DO FETCH cur INTO datetime_current; IF UNIX_TIMESTAMP(datetime_current) - UNIX_TIMESTAMP(datetime_previous) > time_interval THEN INSERT INTO `temp_result` VALUES (datetime_previous), (datetime_current); END IF; SET datetime_previous = datetime_current; END WHILE; CLOSE cur; SELECT * FROM `test_table` WHERE date_time IN ( SELECT date_time FROM `temp_result` ); DROP TEMPORARY TABLE `temp_result`; END$$ DELIMITER ; SELECT * FROM test_table tt; CALL test(60);
  2. Ситуация следующая: есть 2 простеньких сайта, посещаемость невысакая. На данный момент плата за хостинг под них: 4.9 USD/месяц. Хостинг отличный, сапорт 24/7, при возникновении потребности все вопросы решаются оперативно через онлайн чат. Недавно покопавшись нашел хостинг гораздо дешевле: от 1.5. до 2 USD/месяц. Вопрос: "означает ли, что дешевый хостинг будет некачественным"? Быть может есть такой опыт перехода на более дешевый хостинг? Если кто может из опыта посоветовать дешевый украинский хостинг, буду блангодарен.
  3. Это можно проверить: ini_set('display_errors', 'on');error_reporting(-1);$dir = getcwd();// $dir = '/root';echo 'файл искать тут:'. $dir;echo 'права на запись: '. (is_writable($dir) ? 'есть' : 'нет');
  4. Текст запроса покажите, который получается и подробнее об алгоритме поиска. Если нужно, чтоб в выборку попали строки где в столбцах title и text встречалось переданное значение, тогда запрос должен быть следующего вида: SELECT *FROM female_articlesWHERE title LIKE "%искать%" OR text LIKE "%искать%"Попробуйте подправить свой код следующим образом: $search = trim($search);$search = stripcslashes($search);$search = htmlspecialchars($search);$sql = 'SELECT * FROM female_articles WHERE title LIKE :search1 OR text LIKE :search2';$data = $pdo->prepare($sql);$data->bindValue (':search1', '%'. $search .'%');$data->bindValue (':search2', '%'. $search .'%');$data->execute();$row = $data->fetch();Для полей title и text желательно создать полнотекстовый индекс. При использовании в поисковом шаблоне оператора LIKE спец символа "%" в первой позиции, обычные индексы будут игнорироваться. -- использование индекса, созданного для столбца title невозможно-- желательно создать полнотекстовый индексSELECT * FROM female_articles WHERE title LIKE "%search%";-- будет использован индекс, созданный для столбца titleSELECT * FROM female_articles WHERE title LIKE "search%";
  5. я и не говорил, что flash - это единственно возможный вариант. уверяю Вас, я не шизофреник
  6. А как же анимированная банерная реклама(хоть это и "зло", но, как не крути, это неотъемлимая часть вэба), флеш 3d движки, на которых делают браузерные игры. В данный момент, я считаю, что вэб не ограничивается текстом, ссылками и медиаконтентом. Для "среднестатистического" сайта(визитка, магазин, форкм...), согласен флеш в принципе не нужен. Но вот для такого: http://www.thottbot.com/item=113874&bonus=0#modelviewer, флешь - это ОДИН из вариантов решения задачи. Или, например, всякого рода "мини" конструкторы или 3d вьюверы, - все эти задачи могут быть реализованы на флеше. А еще убейте среднестатистическому пользователю флаш-плеер на компе...
  7. Найдите любые 10 web-хостинг провайдеров. И посмотрите какие технологии они предоставляют на своих хостингах. Как альтернативу php можно рассмотреть asp, java... А по поводу слухов. Я года 3-4 назад читаль статью, что flash - мертвая технология.
  8. Что имеется ввиду под термином "многостраничник"?
  9. <?php// Получить значение дня, месяца и года для формирования UTS// начала временного периода.list ($year, $month, $day ) = explode(',', date('Y,n,j'));$start = mktime(7, 0, 0, $month, $day, $year);// Продолжительность временного периода в секундах.$period = 14 * 60 * 60 + 30 * 60;// Текущее значение UTS.$now = time();if ( $now >= $start && $now <= $start + $period) { echo 'Мы в диатазоне с 7:00 до 21:30';}Код не отлаживал. Если будут ошибки - поправите. Суть, думаю, уловить можно. Дико извеняюсь не обратил внимание, что тпик в форуме по JS. // Текущее значение даты.now = new Date();// Получить значение начала временного периода.start = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 7);// Получить значение конца временного периода.end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 21, 30);if ( now >= start && now <= end) { alert('Мы в диатазоне с 7:00 до 21:30');} else { alert('Мы вне диапазона с 7:00 до 21:30');}
  10. Для стандартного компонента com_content: в материале есть "Параметры отображения материала" там есть настройка "Заголовок". Она имеет больший приоритет чем в меню и в дефолтовых настройках данного компонента. Выставить там скрывать.
  11. Вот Вам пример урла, который может быть передан от пользователя: http://host.com/request?lang=../../../script/scripthttp://host.com/request?lang=../../../lib/scripthttp://host.com/request?lang=../../site/download/my_fileТаким образом Вашь скрипт позволит "лазить" по всем доступным закаулкам ФС, которые доступны пользователю от имени которого исполняется скрипт. От Вас хотят исключить возможность вставки спец символов(".","..","/"), которые позволят выйти за пределы папки где лежат языковые скрипты.
  12. Это издевательство над MySQL-серверов в чистом виде. Создание(индексация) это довольно ресурсоемкая операция. На столько ресурсоемкая, что для некоторых движков таблиц реализованы механизм отложенного обновления индекса, который используют при работе с оч. большими массивами данных. Но именно благодаря наличию индекса выполнение сложного запрос может сократиться в десятки раз. Индекс должен создаваться во время проектирования структуры базы данных или на этапе ее эксплуатации. Индексы нужно создавать для: - полей, по которым быдет осуществлються выборка по условию - полей, которые будут использоваться для объединений
  13. Для этого более чем достаточно экранировать(mysqli_real_escape_strin или addslashes) пользовательские данные и, в данном случае, обрамить их кавычками. Обычно пароль в запрос не вставляют. Получают выборки исключительно по логину и уже потом сравнивают полученный из выборки пароль с переданным. По поводу mysqli_prepare(это аналог MySQL команды PREPARE): его рекомендуют пользовать при выполнении нескольких запросов, которые отличаются значением параметров. Суть данной конструкции заключается в подготовке запрос к исполнению(разбор запроса и построение его плана исполнения), которое происходит один при подготовке, а при непосредственном выполнеии запросов этот этап опускается. В вашем случае в этом нет смысла ибо запрос выполняется один раз.
  14. Что-то сильно скромный результат для такой маленькой таблицы. Интересно, в эту цыфру вошло время на открытие соединения. Индексы созданы для поля, какой тип данных, какой тип индекса используется?
  15. Плохо искали. Готовых решений на эту тему оч. много. А влепить гифку в фон дляя инпута на время обработки запроса это дело нескольких минут. https://www.google.ru/search?hl=ru&btnG=1&pws=0&q=js%20autocomplete&gws_rd=ssl
  16. Как TotalCopy меня в долги загнал:
  17. Забудутся, 100% забудутся. Но останется глобальное понимание концепции (если, конечно, училась мат.часть, а не читались книги типа "cookbook for dummies"), что, я считаю, самым главным для ИТ-шника. Из личного опыта: не имея практики написания кода на протяжении более чем 1-2 месяцев (по причине участия в проекте с другим ЯП), забываются нюансы синтаксиса, но все это быстро востанавливается (достаточно просто просмотреть чужой листинг).
  18. Как вариант, если производительность запроса сильно упадет. Тогда можно добавить к таблице новую колонку с интом, и дэфолтовым значением 0 и проиндексировать. И повесить триггер на таблицу, который будет "разбирать" строку, суммировать и результат писать в созданную колонку. Такой подход по идее будет полностью совместим со всеми алгоритмами наполнения и выборки данных из этой таблицы. Такой подход будет уместен, если данные в таблице меняются не сильно часто. И соотношение запись / чтение меньше 1(а лучше если близко к 0).
  19. Регулярки довольно медленная штука, да и функционала регулярных выражений, которые идут "в коробке" с MySQL не уверен, что будет достаточно. Скорее всего придется плагин цеплять. В данном случае вполне будет достаточно функции SUBSTRING_INDEX: SELECT tmp.strFROM ( SELECT '20/30/60' AS str UNION SELECT '23/10/10' UNION SELECT '22/70/20' ) AS tmpWHERE SUBSTRING_INDEX(tmp.str, '/', 1) + SUBSTRING_INDEX(SUBSTRING_INDEX(tmp.str, '/', 2), '/', -1) + SUBSTRING_INDEX(tmp.str, '/', -1) > 100Использование индекса, при таком построении запроса, исключено.
  20. А точно ничего не забыли сделать с результатом выполнения запроса: $date = $db->query("SELECT date FROM " . PREFIX . "_post WHERE `id`='{$newsID}' LIMIT 1");// $date - mysqli_result$date = $date->fetch_assoc();// $date - array$date = $date['date'];// $date - строка$expires = $date;$db->query( "INSERT INTO " . PREFIX . "_post_log (news_id, expires, action) VALUES('{$newsID}', '$expires', '1')" );http://php.net/manual/en/mysqli.query.php http://php.net/manual/en/mysqli-result.fetch-assoc.php
  21. Первое - нужно определить под кем работает Apach (при условии, конечно, что php работает как модуль). Для этого в терминале выполнить: ps -AF | grep -e "apache"Результат примерно следующий: www-data - это пользователь под которым работают рабочие процессы апача (под рутом работает диспетчер - он не нужет). Далее, чтобы дать доступ этому юзеру к файлу или каталогу, можно пойти несколькими путями. Изменить владельца файла/каталога на пользователя апача, в моем случае на www-data: chown -R www-data /var/www/site.comОткрыть всем (и www-data в частности) доступ к файлу/каталогу: chmod -R 777 /var/www/site.com
  22. Ознакомьтесь с системой разделения прав доступа в linux. Изменить права доступа к файлу может только владелец или суперпользователь. Если работаете с хостингом, тогда можно попробовать в панели администрирования хостинга найти менеджер файлов и через него выставить на файл права 777.
  23. Эти настройки прописываются для: владельца, группы и остальных. Если нет возможности посмотреть под кем запускается php, это можно узнать создав из под пхп файл и посмотреть его владельца и группу. Узнав под кем работает пхп, смотрите права на интересующий файл. Примерно так: error_reporting(-1);ini_set('display_errors', 'on');$fh = fopen('test', 'w+');fclose($fh);print_r(stat('test'));print_r(stat('XXX/Applications/Src/cache/index.php'));Еще можно проверить доступ на чтение http://php.net/manual/en/function.is-readable.php
  24. Если блок не вмещается на экране полностью (положил в корзину 13 дисков), то любой клик или активизация полей ввода приводит к сворачиванию блока. Как по мне, ОЧ большой минус, что магазин полностью работает на JS. Если каталог будет ОЧ большой, то его полная "загрузка в браузер" в виде JS объектов может вылезти боком. Главное сеошникам не показывайте этот магазин.
  25. Если "вытащить" блок с корзиной мышкой - кнопка свернуть не появляется. Появится только при клике на пиктограмме корзины.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy