PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (3): [1] 2 3 »

> Найдено сообщений: 39
WiciN Отправлено: 20 Марта, 2010 - 13:00:55 • Тема: Форматирование даты и времени средствами MySQL • Форум: SQL и Архитектура БД

Ответов: 7
Просмотров: 68
Мелкий пишет:
Лучше учиться читать технический английский - куда полезнее Улыбка
(говорю как человек, не знающий английский)
Я это и имел ввиду, в совершенстве владеть не обязательно, а вот понимать "компьютерную лексику" хорошо бы. Угораздило же меня в школе дойч изучать…
WiciN Отправлено: 20 Марта, 2010 - 12:44:32 • Тема: Форматирование даты и времени средствами MySQL • Форум: SQL и Архитектура БД

Ответов: 7
Просмотров: 68
Отлично, спасибо, STR_TO_DATE() - то что доктор прописал. Только очепятка тут была: %d.%m.%Y %H:%i:%s
Нужно учить английский, почти вся полезная инфа на нем, а пока приходится элементарные вещи спрашивать…
WiciN Отправлено: 20 Марта, 2010 - 11:58:23 • Тема: Форматирование даты и времени средствами MySQL • Форум: SQL и Архитектура БД

Ответов: 7
Просмотров: 68
Мелкий пишет:
Как вы так пытали?... На любой вкус функции.
http://dev.mysql.com/doc/refman/...e-functions.html


Я именно там и нашел эти функции, ещё подумал если есть DATE_FORMAT и TIME_FORMAT значит должна быть и DATETIME_FORMAT, попробовал, оказалось, что нету! Улыбка
Примеры с DATE_TIME мельком просмотрел (как всегда первые и последние), а в середине где время пропустил. И продолжил насиловать Яндекс…

Спасибо, что ткнул носом, сейчас я изменил тип данных поля на TIMESTAMP и выборка выполняется так:
CODE (SQL):
скопировать код в буфер обмена
  1.  DATE_FORMAT(`dt`, '%d.%m.%Y %H:%i:%s')

А как тогда для INSERT и UPDATE конвертировать? Попробовал задать стандартный формат мускула, но входящую строку то он не разберёт:
CODE (SQL):
скопировать код в буфер обмена
  1. DATE_FORMAT('20.03.2010 02:48:25', '%Y-%m-%d %H:%i:%s')

результат:
#1292 - Truncated incorrect datetime value: '20.03.2010 02:48:25'
WiciN Отправлено: 20 Марта, 2010 - 10:02:51 • Тема: Форматирование даты и времени средствами MySQL • Форум: SQL и Архитектура БД

Ответов: 7
Просмотров: 68
Задача такая: нужно хранить в MySQL дату и время в таком виде 20.03.2010 02:18:25. Точнее, не хранить, а чтоб сервер MySQL принимал и возвращал их в таком формате.

Несколько часов пытал Яндекс, читая статьи, комментарии, мануалы, но форматирование DATETIME или TIMESTAMP так не нашел. В справочнике нашел отдельно DATE_FORMAT(), TIME_FORMAT(), CONCAT() и сделал вот так:
CODE (SQL):
скопировать код в буфер обмена
  1. CONCAT(DATE_FORMAT(`dt`, '%d.%m.%Y'), ' ', TIME_FORMAT(`dt`, '%H:%i:%s'))


Какой тип данных будет лучше для моего варианта TIMESTAMP или DATETIME при большом количестве данных? (желательно пояснить почему)
Поделитесь своими вариантами, наверняка многие сталкивались с форматированием дататаймов…
WiciN Отправлено: 07 Марта, 2010 - 22:38:22 • Тема: Мини-статья о ЧПУ • Форум: Обсуждение статей

Ответов: 30
Просмотров: 50497
Чтоб не плодить одинаковые темы, решил спросить тут.
У меня в .htaccess ЧПУ организовано так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine On  
  2. Options +FollowSymlinks
  3.  
  4. RewriteBase /cms/
  5.  
  6. RewriteCond %{REQUEST_FILENAME} !-f  
  7. RewriteCond %{REQUEST_FILENAME} !-d  
  8. RewriteRule ^(.*)$ index.php [L,QSA]

Есть несколько вопросов:
1 - Что значит строка Options +FollowSymlinks? Не могу найти нормального описания, везде пишут:
RewriteEngine On
Options +FollowSymlinks - запускает mod_rewrite и всё. Пробовал методом научного тыка, в файле index.php результаты разбора URL одинаковые прописано Options +FollowSymlinks или нет.
2 - Как запретить замену URL для несуществующих файлов в папках img/, other/, files/?
3 - Как сделать так, чтоб запросы браузера (например в тегах <img src=""> или картинок, шрифтов подключаемых из файлов CSS) не обрабатывались mod_rewrite? (Кроме варианта с проверкой %{HTTP_REFERER})
WiciN Отправлено: 06 Марта, 2010 - 20:23:38 • Тема: Оптимизация запроса • Форум: SQL и Архитектура БД

Ответов: 0
Просмотров: 15
Здравствуйте, товарищи программеры и прогламеры.
На сайте используется ЧПУ который все запросы переадресовывает на index.php. В index.php нужно проверить существует ли раздел с данным именем, если нет проверить существует ли страница с данным именем, если и её нет, то кинуть на страницу ERROR 404.

Сейчас хочу оптимизировать этот фрагмент, можно ли как то создать и отправить один запрос, который бы вернул TRUE если раздел существует, данные из таблицы PAGES если нет раздела, но есть страница, или FALSE если нет ни раздела, ни страницы?

Вот код, который работает на данный момент:
PHP:
скопировать код в буфер обмена
  1. $part=mysql_result(mysql_query("SELECT COUNT(*) FROM `".TBL_PARTS."` WHERE `path`='$request[0]/'"),0);
  2. if (!$part) {
  3.         $page=mysql_query("SELECT * FROM `".TBL_PAGES."` WHERE `name`='$request[0]' LIMIT 1");
  4.                 if (!mysql_num_rows($page))
  5.                         header("Location: error.php?404");
  6.                 else
  7.                         print_page($mysql_fetch_assoc($page));
  8. }
  9. else get_part($request);

На мой взгляд это приличный код, но я начитался комментариев к статьям про php+MySQL и начало параноить, что от кода пахнет стариной.
WiciN Отправлено: 18 Января, 2010 - 16:09:45 • Тема: Проблема: include • Форум: Программирование на PHP

Ответов: 3
Просмотров: 616
Я тоже страдал пол дня, не мог понять в чем дело и файлы на месте и пути правильные. Оказалось, что include и конструкция or die() несовместимы.

Ого, только что заметил, что я с ответом опоздал на несколько лет…
WiciN Отправлено: 06 Октября, 2009 - 06:08:01 • Тема: Склонение существительных с числительными • Форум: Пользовательские функции

Ответов: 6
Просмотров: 12233
563434 пишет:
Из этого сделал мой вариант, учитывающий ноль:

Может я что-то упустил, никак не могу понять для чего учитывать ноль?
Если $forms=array('секунда', 'секунды', 'секунд' ); то при 0, 10, 20 … 100… и так далее вернётся 'секунд', всё как положено, зачем запрещать вывод слова при нуле?
WiciN Отправлено: 05 Октября, 2009 - 02:24:54 • Тема: MYSQL and PHP • Форум: Программирование на PHP

Ответов: 12
Просмотров: 619
politaev пишет:
а как сделать чтобы предложил сохранить.....??


Самый тупой: Переписать расширение на какое нибудь другое или заменить файл на такой, который браузер не может открыть самостоятельно.

Только для себя: в браузере - настройки -> типы файлов -> выбрать text/plain - txt и в свойствах этого типа файлов выбрать "показать диалог загрузки".

Правильный (скорее всего): в файле .htaccess задать MIME тип (http://htaccess[dot]net[dot]ru/doc/AddTy[dot][dot][dot]e-MIME/index.php ) для нужного расширения, например:
AddType "тип/файла" .txt
Но при этом все файлы на сервере с расширением .txt превратятся в "тип/файла" и не будут выполнять свою первоначальную роль. Особенно robots.txt
WiciN Отправлено: 04 Октября, 2009 - 22:12:24 • Тема: Быстродействие • Форум: Программирование на PHP

Ответов: 6
Просмотров: 491
Гриша Краснодар пишет:
PHP:
скопировать код в буфер обмена
  1. echo 'Текст '.$text.' текст';
  2. // или
  3. echo "Текст $text текст";

В первом варианте выведит: текст$textтекст
Во втором подставит вместо $text значение этой переменной. Например если $text="php.su", тогда выведит: текстphp.suтекст


Значение переменной подставится в обоих вариантах. И если $text="php.su", тогда выведит: текст php.su текст.
(Добавление)
Phantik пишет:
НО !!!! (великий могучий русский язык)
Это точно! Я, написав эту функцию, пользовал её в х… не дуя. И спустя недели 2-3 увидел "11 игра" и только тогда вспомнил чему в школе учили.
НО !!!!
Алгоритм меня не интересует, он не такой сложный, чтоб искать советов или готового решения. Я так и думал, что ответы будут о вариантах алгоритма, поэтому назвал тему "Быстродействие".

Попытка задать вопрос №2: У меня генерируется файл для скачивания на данный момент 2215 строк. В цикле вызываются функции подмены слова в зависимости от цифры, и подмены окончания в зависимости от пола Мэ или Жо. Меня интересует что отработает быстрее и с минимальными затратами ресурсов: оператор выбора switch (вариант 1) или указание ключа массиву (вариант 2).
Так же интересует что быстрее 'Текст '. $text .' текст' или "Текст $text текст";. Пускай разница не значительная, но как говориццо: байтик метр бережёт.

Буду благодарен тому, кто кинет в меня ссылкой где можно почитать про быстродействие операторов и функций в php. Яндекс и Google не предлагать, всё что находил описано слишком абстрактно, море слов а сути нет. Читал про одинарные и двойные кавычки в одной статье написано так, в другой наоборот. И самое интересное, что оба автора приводят неопровержимые доказательства Радость
WiciN Отправлено: 04 Октября, 2009 - 21:00:49 • Тема: Быстродействие • Форум: Программирование на PHP

Ответов: 6
Просмотров: 491
Привет всем, наверное не только мне надоели надписи типа "Всего 4 штук", "Найдено 23 строк". В голову пришло сразу несколько решений. Подскажите какой из вариантов лучше использовать, например при построении списков из 1000 и более элементов.
Вариант 1
PHP:
скопировать код в буфер обмена
  1. function slovo_game($count){
  2. switch ($count%10) {
  3. case '1': return ' игра'; break;
  4. case '2': return ' игры'; break;
  5. case '3': return ' игры'; break;
  6. case '4': return ' игры'; break;
  7. case '5': return ' игр'; break;
  8. case '6': return ' игр'; break;
  9. case '7': return ' игр'; break;
  10. case '8': return ' игр'; break;
  11. case '9': return ' игр'; break;
  12. case '0': return ' игр'; break;
  13. }
  14. }
  15. echo "Доступно <b>$count_games</b>". slovo_game($count_games);

Вариант 2
PHP:
скопировать код в буфер обмена
  1. $str_games[0]=' игр';
  2. $str_games[1]=' игра';
  3. $str_games[2]=' игры';
  4. $str_games[3]=' игры';
  5. $str_games[4]=' игры';
  6. $str_games[5]=' игр';
  7. $str_games[6]=' игр';
  8. $str_games[7]=' игр';
  9. $str_games[8]=' игр';
  10. $str_games[9]=' игр';
  11. echo "Доступно <b>$count_games</b>". $str_games[$count_games%10];

Конечно огромного прироста скорости я не жду, но этот вопрос меня так же мучает как и разница между
PHP:
скопировать код в буфер обмена
  1. echo 'Текст '.$text.' текст';
  2. // или
  3. echo "Текст $text текст";
WiciN Отправлено: 24 Марта, 2009 - 22:18:20 • Тема: Нарисовать диаграму и вывести таблицу по одним данным • Форум: Программирование на PHP

Ответов: 2
Просмотров: 223
Опять вопрос!

Решил повставлять на страницы графические диаграммы. И столкнулся с вопросом как лучше выводить изображения в браузер.
Сначала сделал отдельный файл "diagramms.php" который выводил картинку в браузер вот так:
В файле diagramm.php:
CODE (text):
скопировать код в буфер обмена
  1. header("Content-type: image/png");
  2. imagepng($im);
На странице:
CODE (text):
скопировать код в буфер обмена
  1.  echo '<img src="diagramm.php?wiev=browsers" alt="">';

Потом подумал, зачем все данные выбирать 2 раза, один раз на странице, чтоб вывести их в таблицу, второй раз в файле генерации диаграммы, чтоб вывести это же графически.
Сделал генерацию изображения и вывода таблицы в одном файле и не могу найти нормальный способ вывести это на экран.
На данный момент вывожу так:
CODE (text):
скопировать код в буфер обмена
  1. imagepng ($im, 'diagramm_brow.png');
  2. echo '<img src="diagramm_brow.png">';


Если выводить: - браузер отобразит иероглифы.
Если выводить:
CODE (text):
скопировать код в буфер обмена
  1. header("Content-type: image/png");
  2. imagepng($im);
- то ругается на то, что заголовок уже давно был.

Как из этой ситуации лучше вырулить, подскажите плиз...
WiciN Отправлено: 14 Марта, 2009 - 12:01:32 • Тема: Сбор статистики • Форум: Программирование на PHP

Ответов: 56
Просмотров: 2085
Champion пишет:
Возможно сунуть скрипт в шедьюлер или крон, соответственно в Винде или *никсе.
(Добавление)
http://ru[dot]wikipedia[dot]org/wiki/Cron
http://www[dot]iopus[dot]com/guides/winscheduler[dot]htm
Первое, что нашел, но вроде написано понятно


Тема для меня абсолютно новая, но суть уже понятна, разберусь, появился другой вопрос. Везде написано, что всё это дело настраивается через crontab (Windows хостинг пока не интересует). Возможно ли добавить задание рассылать письма раз в сутки средствами php (не трогая панель управления хостингом)? Например во время работы файла install.php который создаёт таблицы в БД. А ещё лучше, чтоб из админки можно было редактировать время отправки. Сам файл с новым расписанием средствами php я создам, а вот как пишется "дать приказ демону cron перечитать готовый файл" - как это сделать не обращаясь к панели управления хостингом?
WiciN Отправлено: 14 Марта, 2009 - 11:29:28 • Тема: Сбор статистики • Форум: Программирование на PHP

Ответов: 56
Просмотров: 2085
У меня опять вопрос!
Решил сделать отправку отчета за сутки на e-mail. Сделаю я это так: при запуске счётчика проверяется время, если следующие сутки уже наступили, то запускается скрипт который генерирует письмо и собственно отправляет его.

Возможно ли как то сделать это по другому, более правильно. В моем варианте если не будет посетителей, то и скрипт не запустится. А хотелось бы чтоб строго раз в сутки отправлял, не зависимо от посетителей.
WiciN Отправлено: 04 Марта, 2009 - 13:24:58 • Тема: Сбор статистики • Форум: Программирование на PHP

Ответов: 56
Просмотров: 2085
EuGen пишет:
0. Что mysql_error показывает?
1. Значение всех переменных, участвующих в запросе, через var_dump
2. http://phpfaq[dot]ru/debug


1-mysql_error(); - ничего не показывает, переменная участвует только одна, и запрос получается нормальный: UPDATE reffer SET all=all+1 WHERE url='http://forum.php.su/'

2. http://phpfaq[dot]ru/debug - читал и перепробовал, самому найти ошибку не получается.
Не имею привычки просто так писать на форумах, в гостевых и на заборах.
(Добавление)
Champion пишет:
SELECT * FROM reffer WHERE url='http://w-studio.in.ua/'; что дает, если руками?


Выдаёт строку, в которой url = заданному, всё нормально работает, а вот при обновлении матюкается на синтаксис, а если поубирать кавычки, то all - подсвечивается как зарезервированное слово, возможно в этом и причина, сейчас попробую
(Добавление)
УРА, спасибо всем, заработало, теперь буду намного аккуратней с названиями полей

Страниц (3): [1] 2 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB