Автор Тема: Странен проблем с php и mysql  (Прочетена 1414 пъти)

luda_glawa

  • Напреднали
  • *****
  • Публикации: 652
  • Distribution: Kubuntu
  • Window Manager: KDE
    • Профил
    • WWW
Странен проблем с php и mysql
« -: Mar 13, 2006, 14:51 »
Наистина странен. Имам страничка написана на PHP с база на MySQL. Интернет магазин накратко. Обаче когато добавям нови продукти когато е на английски името няма проблем. А съм го въвел на кирилица и се отрязва до деветия знак. Този проблем  или поне подобен имах и преди да направя някои промени по дизайна, но все ми се струва, че дизайна не би трябвало да оказва влияние върху SQL базата. Та преди да променя дизайна режеше до четвърти знак, но това само в Mozilla Firefox. В IE работеше т.е. именувах ги на кирилица. Но сега и на двете места ограничението на кирилица е девет знака. Когато погледна в базата името е нещо от сорта:

абвгдежзи&

а този ред отговаря на:

абвгдежзи

На латиница нямам никакви проблеми с дължината. Та ако може да ми дадете някаква идея къде може да е проблема ще съм благодарен. А само да добавя. Преди да се запише името в базата, въведено на кирилица, ми показва как би изглеждала информацията за продукта и там името е правилното. И заради това ми се струва, че проблема е в самия MySQL, а и няма никакви ограничения за дължината. Странно.

Да не би проблема да се крие в следните настройки на MySQL сървъра:

Стойност                    на сесията  глобална
character set client                 utf8     latin1
character set connection    utf8     latin1
character set database            latin1     latin1
character set results               utf8     latin1
character set server              latin1   latin1
character set system             utf8      utf8

ft max word len                  84         84
Активен

С Уважение:

Luda Glawa ;-)

astronom

  • Напреднали
  • *****
  • Публикации: 254
    • Профил
Странен проблем с php и mysql
« Отговор #1 -: Mar 13, 2006, 15:05 »
Две неща трябва да провериш: кодирането на страницата ти и кодирането на колоната в MySQL. Аз лично ти препоръчвам UTF-8, след като имаш намерение да използваш няколко азбуки. Причината данните ти да бъдат отрязвани е, че нямаш достатъчно място за запис на символите в колоната.

ft_max_word_length се използва за ограничаване на дължината на думите които ще бъдат индексирани за Full Text Search.
Активен

Г. Д. Сотиров

rat

  • Напреднали
  • *****
  • Публикации: 266
    • Профил
Странен проблем с php и mysql
« Отговор #2 -: Mar 13, 2006, 15:13 »
Само да допълня :
Ако ползваш UTF8 за колоната, ще ти се наложи да укажеш с какъв енкодинг ти работи лконекцията :
mysql_connect()..
mysql_query("set names utf8")..

  • Гост
Странен проблем с php и mysql
« Отговор #3 -: Mar 13, 2006, 15:41 »
според мене проблема не е в mysql-а, а в магазина или там каквото е. Тоест виж си php кода.
Това нещо:

Цитат

абвгдежзи&


в в резултата на това нещо:
http://bg.php.net/manual/en/function.htmlentities.php

предполагам, че това дето го вкарваш за title първо минава през тази функц. после отива в базата (което според мене не е много добро решение)
след това минава през някаква функц. която проверява, за допустима дължина на заглавието:
Нещо от сорта на:
http://bg.php.net/manual/en/function.strlen.php

Както и да е - мисълта ми беше да огледаш и php кода
Активен

luda_glawa

  • Напреднали
  • *****
  • Публикации: 652
  • Distribution: Kubuntu
  • Window Manager: KDE
    • Профил
    • WWW
Странен проблем с php и mysql
« Отговор #4 -: Mar 13, 2006, 15:47 »
Благодаря за съветите. Довечера ще се заровя в кода :-). Утре ще пиша за резултата.
Активен

С Уважение:

Luda Glawa ;-)

  • Гост
Странен проблем с php и mysql
« Отговор #5 -: Mar 13, 2006, 15:53 »
Цитат

Причината данните ти да бъдат отрязвани е, че нямаш достатъчно място за запис на символите в колоната.


има идея тука - ако колоната е нещо от сорта на
varchar(60)
Активен

  • Гост
Странен проблем с php и mysql
« Отговор #6 -: Mar 13, 2006, 16:08 »
Цитат (Guest @ Март 13 2006,16:53)
Цитат

Причината данните ти да бъдат отрязвани е, че нямаш достатъчно място за запис на символите в колоната.


има идея тука - ако колоната е нещо от сорта на
varchar(60)

varchar(64)

Доколкото разбирам просто не преобразува правилно кирилицата.

9 * 7 + 1 (&) = 64
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
MySql малък проблем.
Хардуерни и софтуерни проблеми
Marto 6 4538 Последна публикация Sep 25, 2002, 12:32
от
mysql въпрос
Настройка на програми
dumi 0 1393 Последна публикация Oct 08, 2003, 06:42
от dumi
Perl + CGI,DBI + Mysql ili PHP + Mysql
Общ форум
jica 3 5257 Последна публикация Sep 07, 2004, 17:02
от jica
Mysql проблем със стартирането(mysql.sock missing)
Настройка на програми
coveka 6 7099 Последна публикация Mar 01, 2008, 22:02
от coveka
Mysql: can't connect to local mysql server
Настройка на програми
wonder 1 5474 Последна публикация Mar 16, 2008, 01:17
от neter