PHP.SU

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

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

> Найдено сообщений: 21
muravey Отправлено: 15 Июня, 2013 - 18:35:49 • Тема: Как в PHP используя PDO MySql установить lc_time_names = 'ru_RU'? • Форум: Работа с СУБД

Ответов: 8
Просмотров: 4873
Мелкий пишет:
А вот по поводу lc_time_names ничего не скажу, из сессии ей возможно управлять: http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html


Как это можно сделать?
(Добавление)
Даже в мануале пишут что можно

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  lc_time_names
  3.  
  4. System Variable Name    lc_time_names
  5. Variable Scope  Global, Session
  6. Dynamic Variable        Yes
  7.         Permitted VALUES
  8. Type    string
  9.  


CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. mysql> SET lc_time_names = 'es_MX';
  3. Query OK, 0 rows affected (0.00 sec)
  4.  
  5. mysql> SELECT @@lc_time_names;
  6. +-----------------+
  7. | @@lc_time_names |
  8. +-----------------+
  9. | es_MX           |
  10. +-----------------+
  11. 1 row IN SET (0.00 sec)
  12.  
  13. mysql> SELECT DAYNAME('2010-01-01'), MONTHNAME('2010-01-01');
  14. +-----------------------+-------------------------+
  15. | DAYNAME('2010-01-01') | MONTHNAME('2010-01-01') |
  16. +-----------------------+-------------------------+
  17. | viernes               | enero                   |
  18. +-----------------------+-------------------------+
  19.  


У меня не работает Огорчение
muravey Отправлено: 15 Июня, 2013 - 18:23:25 • Тема: Как лучше • Форум: Работа с СУБД

Ответов: 8
Просмотров: 1420
Zim_one пишет:
Здраствуйте. Есть у меня массив с разными ключами и есть БД в которой та же информация с такими же полями как и ключи. Откуда лучше сортировать эту инфу, из БД или из массива? Что быстрее? Буду благодарен...


Я думаю так :

Подготавливает Данные - обрабатывает БД
Доставляет Данные - PHP
Представление Данных - HTML
Поведение Данных - JavaScript

В БД можно разными способами подготавливать и сортировать данные. Также при таком изобилии СУБД можно при проектировании приложения бодобрать ту СУБД которая будет удовл ваши требования к скорости приложения.

И незабывайте что в Курьер данных - PHP понимает много СУБД через PDO.

Так что однозначно, что БД быстрее отсортирует чем массив. Ну сами подумайте.
- через БД - один запрос и результат
- через массив - один запрос, сортировка в массивею

Помните что БД и PHP это просто программы, у которых выполнение каждой итерации это + время.
muravey Отправлено: 15 Июня, 2013 - 18:08:31 • Тема: Как в PHP используя PDO MySql установить lc_time_names = 'ru_RU'? • Форум: Работа с СУБД

Ответов: 8
Просмотров: 4873
DelphinPRO пишет:
перевести я и сам могу Улыбка

често говоря, затрудняюсь ответить. И главное не могу понять где ошибка. вроде в MySQL, но через расширение mysql_* работает, получается в драйвере PDO...
Ждем гуру в этом вопросе, если они есть тут...


Так же ругается если хочу установить
PHP:
скопировать код в буфер обмена
  1.  
  2. SET ft_min_word_len = 3; //по умолчанию 4 это я использую при поиске
  3.  

(Добавление)
Если делаю так не ругается
PHP:
скопировать код в буфер обмена
  1.  
  2. PDO::MYSQL_ATTR_INIT_COMMAND => "SET @ft_min_word_len = 3,
  3.                                                                    @lc_time_names = 'ru_RU'"
  4.  


но в приложении не видно изменений.
muravey Отправлено: 15 Июня, 2013 - 17:52:30 • Тема: Как обяединить 2 таблицы и вывести даные? • Форум: Работа с СУБД

Ответов: 9
Просмотров: 1638
Попробуйте такую реализацию

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. (SELECT author.name, knigi.title, knigi.name, DATE_FORMAT(knigi.`year`, '%Y') AS `year`
  3. FROM author
  4. JOIN knigi ON knigi.author_id = author.author_id
  5. WHERE author.author_id = 1)
  6. UNION
  7. (SELECT author.name, gurnal.title, gurnal.name, DATE_FORMAT(gurnal.`year`, '%Y') AS `year`
  8. FROM author
  9. JOIN gurnal ON gurnal.author_id = author.author_id
  10. WHERE author.author_id = 1)
  11. ORDER BY `year`;
  12.  


На выходе получите
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  name   title   name    year По возрастанию
  3. Автор 2         Заголовок книги 1       Название книги 1        2012
  4. Автор 2         Заголовок книги 1       Название книги 1        2013
  5. Автор 2         Заголовок журнала 4     Название журнала 4      2013
  6.  

(Добавление)
для автора 1
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  name   title   name    year По возрастанию
  3. Автор 1         Заголовок журнала 1     Название журнала 1      2013
  4. Автор 1         Заголовок журнала 2     Название журнала 2      2013
  5. Автор 1         Заголовок журнала 3     Название журнала 3      2013
  6. Автор 1         Зголовок книги 1        Название книги 1        2013
  7. Автор 1         Зголовок книги 2        Название книги 2        2013
  8.  


для автора 2
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. Автор 2         Заголовок книги 4       Название книги 4        2012
  3. Автор 2         Заголовок журнала 4     Название журнала 4      2013
  4. Автор 2         Заголовок книги 3       Название книги 3        2013
  5.  
muravey Отправлено: 15 Июня, 2013 - 16:10:51 • Тема: Как в PHP используя PDO MySql установить lc_time_names = 'ru_RU'? • Форум: Работа с СУБД

Ответов: 8
Просмотров: 4873
DelphinPRO пишет:
ну а если просто запрос выполнять? без MYSQL_ATTR_INIT_COMMAND
PHP:
скопировать код в буфер обмена
  1. self::$_mHandler->query("SET lc_time_names = 'ru_RU'");


Ошибка
PHP:
скопировать код в буфер обмена
  1.  
  2. SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'lc_time_names' can't be set to the value of 'ru_RU'
  3.  


типа:
PHP:
скопировать код в буфер обмена
  1.  
  2. SQLSTATE [42000]: В случае синтаксической или нарушение прав доступа: 'lc_time_names' 1231 переменная не может быть установлена ​​в значение 'ru_RU'
  3.  


Что вообще получается никак.
В мануале тоже ничего не могу найти.
muravey Отправлено: 14 Июня, 2013 - 08:55:49 • Тема: Как в PHP используя PDO MySql установить lc_time_names = 'ru_RU'? • Форум: Работа с СУБД

Ответов: 8
Просмотров: 4873
DelphinPRO пишет:
muravey пишет:
is a read only variable

написано "только для чтения", значит нельзя в эту переменную записывать.


Может вы знаете.

Раньше в скриптах писал так
PHP:
скопировать код в буфер обмена
  1.  
  2. /*  Установка русской локали соединения */
  3.          mysql_query("SET lc_time_names = 'ru_RU'") ;
  4.  


И все было ок. Когда выводил дату из базы месяц был по русски

Сейчас перешел на PDO и ни где не могу найти как из скрипта установить локаль?

Если устанавливаю через my.ini все ок.

Но мне надо для cms, чтобы install.php установщик установил локаль не обращаясь в тех подд хостера.
muravey Отправлено: 13 Июня, 2013 - 23:13:44 • Тема: Как в PHP используя PDO MySql установить lc_time_names = 'ru_RU'? • Форум: Работа с СУБД

Ответов: 8
Просмотров: 4873
Как в PHP используя PDO MySql установить lc_time_names = 'ru_RU'?

Нужно решение установки в конфиге сайта, а не в конфигурационном файле.

Я делал так
PHP:
скопировать код в буфер обмена
  1.  
  2. // Создаем новый экземпляр класса PDO
  3.         self::$_mHandler = new PDO(PDO_DSN,
  4.                                    DB_USERNAME,
  5.                                    DB_PASSWORD,
  6.                                    array(PDO::ATTR_PERSISTENT => DB_PERSISTENCY,
  7.                                          PDO::MYSQL_ATTR_INIT_COMMAND => "SET lc_time_names = '".RU_RU."'"));
  8.  


config.php


Выдает ошибку
PHP:
скопировать код в буфер обмена
  1.  
  2. SQLSTATE[HY000] [1238] Variable 'lc_time_names' is a read only variable
  3.  


Что я делаю не правильно?
muravey Отправлено: 18 Мая, 2013 - 13:06:26 • Тема: Не работает header в firefox. • Форум: HTTP и PHP

Ответов: 21
Просмотров: 8138
DeepVarvar пишет:
Да ну, хрень раздули на западе..


Так или иначе. Я всегда работаю до результата. Есть результат и он работает везде значит все Ок!

А что касается твоего скрипта это профессиональный скрипт. И любой не профессионал также сможет использовать его не правильно и он не будет работать, так как надо.

Набери в поисковиках и ты увидишь кучу таких вопросов. У кого то в Опере, у кого в ИЕ и т.д. и ни где нет правильной ориентации поиска решения.

И еще я думаю, что профи вроде тебя всегда будуе говорить что у меня все работает всегда и везде. На то ты и профи. А как иначе. И даже если кто то раздул хрень и это помогло, значит это не хрень. А хрень то что не помогло.

Учится надо всегда даже профи. Знать все не возможно.
muravey Отправлено: 18 Мая, 2013 - 11:50:49 • Тема: Не работает header в firefox. • Форум: HTTP и PHP

Ответов: 21
Просмотров: 8138
DelphinPRO пишет:
Попробуй фокс на другом компьютере.
Попробуй фокс с отключеными расширениями.


Уже тестировал на др компе и фоксе.

Я нашел решение.

Оказывается что сам header специфичен для для ООП. В каждом случае его нужно правильно вызывать в системе. И только тогда он будет работать всегда и везде.

Это только путем тестов и проверок.

На западных форумах подсказали.

Такой гемор нужен для тех кто разработчик движков и больших скриптов.

Нужно сам скрипт подстраивать под браузер.
- пробывать его ставить в разных местах
- обязательно это делать с буфером
- var_damp смотреть что выводиться до перенаправления
- изучать заголовки запроса и ответа
- смотреть как он себя ведет в браузерах

ПОДЧЕРКИВАЮ В БРАУЗЕРАХ, а не браузере оказалось что это очень важно...

Вот только после этого и 3 дня работы я настроил не просто скрипт а целый свой движок на кроссбраузерность header.

Спасибо всем, за отклик.
muravey Отправлено: 18 Мая, 2013 - 09:34:57 • Тема: Не работает header в firefox. • Форум: HTTP и PHP

Ответов: 21
Просмотров: 8138
DeepVarvar пишет:
muravey пишет:
но я твои тоже проставил
Надо проставить только мои. Ну или вписать их уже после определения твоих чтобы они переопределили твои.


Я так и сделал после моих поставил твои переопределил. Ничего, все также.
muravey Отправлено: 18 Мая, 2013 - 09:13:41 • Тема: Не работает header в firefox. • Форум: HTTP и PHP

Ответов: 21
Просмотров: 8138
DeepVarvar пишет:
Брутфорсом пытаешься редирект взять? Закатив глазки
А нука впили в самое начало скрипта:

PHP:
скопировать код в буфер обмена
  1. ini_set("display_errors", "On");
  2. ini_set("html_errors", "On");
  3. error_reporting(E_ALL | E_STRICT);


Какие результаты теперь?


У меня так стоит
PHP:
скопировать код в буфер обмена
  1.  
  2. //эти значения должны быть равны true на этапе разработки
  3. define('IS_WARNING_FATAL', true);
  4. define('DEBUGGING', true);
  5.  
  6. //типы ошибок, о которых должны составляться сообщения
  7. define('ERROR_TYPES', E_ALL);
  8.  


но я твои тоже проставил, ничего. Ошибок нет!

Протестировал с другими браузерами:
PHP:
скопировать код в буфер обмена
  1.  
  2. Chrome +
  3. Opera +
  4. IE9 +
  5.  
  6. FireFox -
  7. Safari -
  8.  


Ничего не понимаю! Огорчение
muravey Отправлено: 18 Мая, 2013 - 08:38:37 • Тема: Не работает header в firefox. • Форум: HTTP и PHP

Ответов: 21
Просмотров: 8138
DeepVarvar пишет:
Не знаю, у меня все работает как надо.
Перечитай мое сообщение еще раз.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. header("HTTP/1.1 301 Moved Permanently");
  2. header("Location: $destination");
  3. die();


В каком браузере?
(Добавление)
В хроме работает такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 302 Moved Temporarily');
  3. header("Location: /".$redirect);
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 302 Moved Permanently');
  3. header("Location: /".$redirect);
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 302 Moved Temporarily');
  3. header("Location: /".$redirect);
  4. exit();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4. exit();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 302 Moved Temporarily');
  3. header("Location: /".$redirect);
  4. exit();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4. exit();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 302 Moved Temporarily');
  3. header("Location: /".$redirect);
  4. die();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4. die();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 302 Moved Temporarily');
  3. header("Location: /".$redirect);
  4. die();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4. die();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Location: /".$redirect, true, 301);
  3. exit();//die();
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Location: /".$redirect, true, 301);
  3. exit();//die();
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Location: /".$redirect, true, 302);
  3. exit();//die();
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Location: /".$redirect, true, 302);
  3. exit();//die();
  4.  


А в фоксе вообще ни какая!
muravey Отправлено: 18 Мая, 2013 - 07:48:37 • Тема: Не работает header в firefox. • Форум: HTTP и PHP

Ответов: 21
Просмотров: 8138
DeepVarvar пишет:
Ну так тебе ж сказали не 302, а 301 или Location
(Добавление)
И еще не попутай спецификации 1.0 и 1.1, в первой нету редиректов.


Сделал так
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4.  


не помогло.
(Добавление)
Примерно такая же проблема и тех поддержка FireFox пишет что они такое устранят
https://support[dot]mozilla[dot]org/ru/q[dot][dot][dot]amp;r=1&as=s

Ну почему так?
muravey Отправлено: 18 Мая, 2013 - 06:07:09 • Тема: Не работает header в firefox. • Форум: HTTP и PHP

Ответов: 21
Просмотров: 8138
OrmaJever пишет:

пошарьтесь в панели разработчика в хроме и фф, посмотрите какие имено там заголовки приходят.


HTTP Headers в Хроме
PHP:
скопировать код в буфер обмена
  1.  
  2. Pragma  no-cache
  3. Date    Sat, 18 May 2013 02:50:28 GMT
  4. Server  Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13
  5. X-Powered-By    PHP/5.3.13
  6. Transfer-Encoding       chunked
  7. Content-Type    text/html; charset=utf-8
  8. Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  9. Connection      Keep-Alive
  10. Keep-Alive      timeout=5, max=100
  11. Expires Thu, 19 Nov 1981 08:52:00 GMT
  12.  


PHP:
скопировать код в буфер обмена
  1.  
  2. HTTP Status: 200 (HTTP/1.1 200 OK)
  3.  


HTTP Headers в Фоксе
PHP:
скопировать код в буфер обмена
  1.  
  2. Date: Sat, 18 May 2013 03:06:43 GMT
  3.  
  4. Server: Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13
  5.  
  6. X-Powered-By: PHP/5.3.13
  7.  
  8. Expires: Thu, 19 Nov 1981 08:52:00 GMT
  9.  
  10. Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  11.  
  12. Pragma: no-cache
  13.  
  14. Keep-Alive: timeout=5, max=100
  15.  
  16. Connection: Keep-Alive
  17.  
  18. Transfer-Encoding: chunked
  19.  
  20. Content-Type: text/html; charset=utf-8
  21.  
  22.  
  23. 200 OK
  24.  

(Добавление)
еще из фокса

PHP:
скопировать код в буфер обмена
  1.  
  2. http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1
  3.  
  4. GET /itamit.com/admin.php?Page=Cms&ParentId=1 HTTP/1.1
  5. Host: localhost
  6. User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0
  7. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  8. Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
  9. Accept-Encoding: gzip, deflate
  10. Referer: http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1&SortPosition=pos&PageNav=2
  11. Cookie: vc=23; __gads=ID=c16c12472f749154:T=1364821015:S=ALNI_MYQL5u94GcrxHyHWDtYaH5AO364gA; PHPSESSID=nhh6klbqttvm4lemjmkupil8r2
  12. Connection: keep-alive
  13.  
  14. HTTP/1.1 200 OK
  15. Date: Sat, 18 May 2013 03:08:19 GMT
  16. Server: Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13
  17. X-Powered-By: PHP/5.3.13
  18. Expires: Thu, 19 Nov 1981 08:52:00 GMT
  19. Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  20. Pragma: no-cache
  21. Keep-Alive: timeout=5, max=100
  22. Connection: Keep-Alive
  23. Transfer-Encoding: chunked
  24. Content-Type: text/html; charset=utf-8
  25.  
  26. http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1
  27.  
  28. GET /itamit.com/admin.php?Page=Cms&ParentId=1 HTTP/1.1
  29. Host: localhost
  30. User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0
  31. Accept: */*
  32. Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
  33. Accept-Encoding: gzip, deflate
  34. Referer: http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1
  35. Cookie: vc=23; __gads=ID=c16c12472f749154:T=1364821015:S=ALNI_MYQL5u94GcrxHyHWDtYaH5AO364gA; PHPSESSID=nhh6klbqttvm4lemjmkupil8r2
  36. Connection: keep-alive
  37.  
  38. HTTP/1.1 200 OK
  39. Date: Sat, 18 May 2013 03:08:19 GMT
  40. Server: Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13
  41. X-Powered-By: PHP/5.3.13
  42. Expires: Thu, 19 Nov 1981 08:52:00 GMT
  43. Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  44. Pragma: no-cache
  45. Keep-Alive: timeout=5, max=99
  46. Connection: Keep-Alive
  47. Transfer-Encoding: chunked
  48. Content-Type: text/html; charset=utf-8
  49.  
  50.  

(Добавление)
в итоге я должен оказаться здесь
PHP:
скопировать код в буфер обмена
  1.  
  2. http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1&SortPosition=pos&PageNav=2
  3.  


а оказываюсь
PHP:
скопировать код в буфер обмена
  1.  
  2. http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1
  3.  
muravey Отправлено: 17 Мая, 2013 - 20:03:51 • Тема: Не работает header в firefox. • Форум: HTTP и PHP

Ответов: 21
Просмотров: 8138
OrmaJever пишет:
а циклического редиректа точно нет?

Такая ошибка уже была фокс сразу заругался я ее исправил.

OrmaJever пишет:
после редиректа вызывайте exit() или die()

были так тоже не хочет.
(Добавление)
DelphinPRO пишет:
PHP:
скопировать код в буфер обмена
  1. header("Location: /".$redirect, true, 301);


Попробывал тоже самое фокс не работает хром все ок.
(Добавление)
Вызываю я эту функцию
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_GET['ParentId']))
  3.         {
  4.             $this->mParentId = (int)$_GET['ParentId'];
  5.            
  6.             if (isset($_SESSION['link_redirect']))
  7.             {
  8.                 $find = "ParentId=".$this->mParentId;
  9.                 if (strpos($_SESSION['link_redirect'], $find))
  10.                 {
  11.                     $redirect = $_SESSION['link_redirect'];
  12.                     //var_dump($redirect);
  13.                      
  14.                     Link::Redirect($redirect);
  15.                 }
  16.             }
  17.         }  
  18.  

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB