Jump to content
  • 0

Преобразование в верхний регистр не работает для результата запроса


Boron
 Share

Question

Кто может сказать, в чём проблема?

Выполняется запрос:

		$sql  = "SELECT name ";
$sql .= "FROM main_pages ";
$sql .= "WHERE id = ".$_GET['id']." ";
$query = mysql_query($sql);
$main_page_name = strtoupper(mysql_result($query, 0));

Результат выводится таким, каким был получен из запроса (т.е. если была запись "Новости", то так и выводится в смешанном регистре "Новости", а не "НОВОСТИ")

Пробовал и функцию mb_strtoupper, результат тот же.

P.S. var_dump($main_page_name) говорит, что тип переменной - string.

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

Извиняюсь, что только сейчас отвечаю, просто вернулся к проблеме только сейчас. :D

$main_page_name = mysql_result($query, 0);
print $main_page_name;
$main_page_name = strtoupper( $main_page_name );
print $main_page_name;

Выводит "НовостиНовости"

SELECT UPPER(`name`)

Выводит "Новости"

Да что за беда такая? :D

Link to comment
Share on other sites

  • 0

а какое у вас значение локали для LC_CTYPE?

попробуйте установить русскую локаль для LC_CTYPE с помощью функции setlocale

Попробуйте поставить ru_RU или ru или rus или что-то подобное.

Link to comment
Share on other sites

  • 0

strtoupper() должна работать, лично у меня работает....

  # Выводим записи
$query_test = mysql_query("SELECT * FROM `test`");
for ($i = 0; $i < mysql_num_rows($query_test); $i++) :
$test = mysql_fetch_array($query_test);
echo "$test[id]";

$test[msg] = strtoupper($test[msg]);
echo "$test[msg]";

Edited by gesandte
Link to comment
Share on other sites

  • 0
а какое у вас значение локали для LC_CTYPE?

попробуйте установить русскую локаль для LC_CTYPE с помощью функции setlocale

Попробуйте поставить ru_RU или ru или rus или что-то подобное.

Про какую локаль идёт речь? Которая задаётся в html теге meta? Или в БД?

В meta UTF-8

В БД utf-general-ci.

P.S. Пробовал изменить запись с "Новости" на "News", всё так-же.

В принципе, забил на вывод больших букв. Но с проблемой всё-таки хотелось бы разобраться. Так что если есть какие идеи, делитесь. Буду рад. :D И могу опробовать, в случае чего решения. (файлик с этой проблемой оставил).

Link to comment
Share on other sites

  • 0
Kel-Tanas

А все остальное?

Кароче впиши в начале скрипта это и скажи, что будет:

if ( !setlocale ( LC_ALL , 'rus') ) {  // для окон
setlocale ( LC_ALL , ‘ru_RU.CP1251′ ); // для чертей и пингвинов
}

Чтобы с флоатом глюков не ловить, еще пиши это

setLocale(LC_NUMERIC , "C", "en_US.CP1251", "en_US", "English");

Link to comment
Share on other sites

  • 0

Помоему проще написать что то типо этого:

$rep = array(
'А','а','Б','б','В','в','Г','г','Д','д',
'Е','е','Ё','ё','Ж','ж','З','з','И','и',
'К','к','Л','л','М','м','Н','н','О','о',
'П','п','Р','р','С','с','Т','т','У','у',
'Ф','ф','Х','х','Ц','ц','Ч','ч','Ш','ш',
'Щ','ш','Ь','ь','Ы','ы','Я','я','Э','э',
'Ю','ю','Ъ','ъ',
);
$q = $_GET[q];
for ($i=0;$i<sizeof($rep);$i+=2) {
$ii = $i+1;
$q = str_replace($rep[$i],$rep[$ii],$q);
}
$q = strtolower($q);

функция strtolower() у меня не работает с русскими строками..

Деревяно, ну а чтож.. зато работает...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Обсуждения

    • Актуальные контакты: Telegram: @Nikker_web E-Mail:   tarasevich.email@gmail.com Портфолио https://www.behance.net/d4d4186e Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ    
    • Актуальные контакты: Telegram: @Nikker_web E-Mail:   tarasevich.email@gmail.com   Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ   Портфолио https://www.behance.net/d4d4186e
    • Доброго всем времени суток. Прошу помощи. Научите принципу изменения футера. Движок Xenforo. Версия 2.2.10. Стиль дефолтный. Что именно нужно в итоге на фото примере. Мой шаблон app.footer less имеет следующее значение.  .p-footer { .xf-publicFooter(); a { .xf-publicFooterLink(); } } .p-footer-inner { .m-pageWidth(); .m-pageInset(); padding-top: @xf-paddingMedium; padding-bottom: @xf-paddingLarge; } .p-footer-row { .m-clearFix(); margin-bottom: -@xf-paddingLarge; } .p-footer-row-main { float: left; margin-bottom: @xf-paddingLarge; } .p-footer-row-opposite { float: right; margin-bottom: @xf-paddingLarge; } .p-footer-linkList { .m-listPlain(); .m-clearFix(); > li { float: left; margin-right: .5em; &:last-child { margin-right: 0; } a { padding: 2px 4px; border-radius: @xf-borderRadiusSmall; &:hover { text-decoration: none; background-color: fade(@xf-publicFooterLink--color, 10%); } } } } .p-footer-rssLink { > span { position: relative; top: -1px; display: inline-block; width: 1.44em; height: 1.44em; line-height: 1.44em; text-align: center; font-size: .8em; background-color: #4682B4; border-radius: 2px; } .fa-rss { color: white; } } .p-footer-copyright { margin-top: @xf-elementSpacer; text-align: center; font-size: @xf-fontSizeSmallest; } .p-footer-debug { margin-top: @xf-paddingLarge; text-align: right; font-size: @xf-fontSizeSmallest; .pairs > dt { color: inherit; } } @media (max-width: @xf-responsiveMedium) { .p-footer-row-main, .p-footer-row-opposite { float: none; } .p-footer-copyright { text-align: left; padding: 0 4px; // aligns with other links } }  
    • Нужны сайты с примерами верстки, типа https://css-tricks.com/. Типовые приемы и нестандартные на все случаи жизни. Накидайте ссылок.
×
×
  • 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