Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Где убрать ограничения на длину названия статьи


alikxus

Recommended Posts

В phpmyAdmin нужно поменять тип данных

И ногой по колесу стучал, и руль крутил :)

там varchar(64) стоял, пробовал и VARCHAR( 255 ), и на текст менял - ниче не помогает

Надіслати
Поділитися на інших сайтах


mobiliti, если вы мне назовете хоть один тип данных, который может ограничить вводимые значения ОТ 3 ДО 64, то я застрелюсь!

alikxus, по адресу admin\controller\catalog\information.php примерно в 403 строке найдете такую конструкцию

foreach ($this->request->post['information_description'] as $language_id => $value) {
			if ((strlen(utf8_decode($value['title'])) < 3) || (strlen(utf8_decode($value['title'])) > 32)) {
				$this->error['title'][$language_id] = $this->language->get('error_title');
			}
		
			if (strlen(utf8_decode($value['description'])) < 3) {
				$this->error['description'][$language_id] = $this->language->get('error_description');
			}
		}
первый if - это ограничение на длину названия, а второй - на сам текст статьи.
  • +1 2
Надіслати
Поділитися на інших сайтах


если вы мне назовете хоть один тип данных, который может ограничить вводимые значения ОТ 3 ДО 64, то я застрелюсь!

`title` varchar(64) NOT NULL DEFAULT ''
Правки кода былоб недостаточно
  • +1 1
Надіслати
Поділитися на інших сайтах


VARCHAR (M) L+1 символов М - Максимальный размер Позволяет хранить переменные строки длиной L. Значение М - от 0 до 65535.

Примеры:

VARCHAR (3) - хранит строки максимум из 3 символов, но пустая строка '' занимает 1 байт памяти, строка 'a' - 2 байта, строк 'aa' - 3 байта, строка 'aaa' - 4 байта. Значение более 3 символов будет усечено до 3.

Я не вижу Трупа

Надіслати
Поділитися на інших сайтах


VARCHAR (M) L+1 символов М - Максимальный размер Позволяет хранить переменные строки длиной L. Значение М - от 0 до 65535.

Примеры:

VARCHAR (3) - хранит строки максимум из 3 символов, но пустая строка '' занимает 1 байт памяти, строка 'a' - 2 байта, строк 'aa' - 3 байта, строка 'aaa' - 4 байта. Значение более 3 символов будет усечено до 3.

Я не вижу Трупа

))) а я по-прежнему не вижу типа данных в твоем посте, объявление которого могло бы ограничить вводимые значения не от 0, а от какого либо значения.

то, что ты написал, по смыслу звучит примерно так:

"У меня есть карандаши.

Карандаши бывают разного цвета.

Я не вижу мои плюшки."

Надіслати
Поділитися на інших сайтах


`title` varchar(64) NOT NULL DEFAULT ''
Правки кода былоб недостаточно
читайте внимательно посты, было написано, что изначально у ТС было varchar(64), а теперь и вовсе varchar(255)
Надіслати
Поділитися на інших сайтах


еще раз повторяю для слабовидящих: у alikxus уже прописано в phpmyadmin значение для title более чем достаточное для корректной работы.

если бы этого не было написано, то твое ехидное замечание было бы уместно.

если оставить varchar(64) - работать будет, но строки будут обрезаться без каких-либо сообщений пользователю.

Змінено користувачем EvzeNsx
  • +1 1
Надіслати
Поділитися на інших сайтах


Вот-вот и я об этом, если бы не было написано, но ты просил указать тип данных или ты застрелишься, EvzeNsx с суицидальными наклонностями все таки этот тип данных обризает)))

mobiliti, если вы мне назовете хоть один тип данных, который может ограничить вводимые значения ДО 64, то я застрелюсь!

alikxus, по адресу admin\controller\catalog\information.php примерно в 403 строке найдете такую конструкцию

foreach ($this->request->post['information_description'] as $language_id => $value) {
			if ((strlen(utf8_decode($value['title'])) < 3) || (strlen(utf8_decode($value['title'])) > 32)) {
				$this->error['title'][$language_id] = $this->language->get('error_title');
			}
		
			if (strlen(utf8_decode($value['description'])) < 3) {
				$this->error['description'][$language_id] = $this->language->get('error_description');
			}
		}
первый if - это ограничение на длину названия, а второй - на сам текст статьи.
Надіслати
Поділитися на інших сайтах


Вот-вот и я об этом, если бы не было написано, но ты просил указать тип данных или ты застрелишься, EvzeNsx с суицидальными наклонностями все таки этот тип данных обризает)))

ГДЕ ты указал тип данных, который не только обрезает верхнюю границу, но и регулирует нижнюю?
Надіслати
Поділитися на інших сайтах


Причем тут границы посмотри, как стояла задача. Не хватает пару символов, а что у нас делает varchar() я писал выше.

Почитай там много интересного пишут:

http://www.mysql.ru/docs/man/CHAR.html

В блоке информация вот така фигня:

Название статьи должно быть от 3 до 64 символов!

А мне буквально не хватает пару символов, где это можно подправить?

Надіслати
Поділитися на інших сайтах


А ты считаешь, что если поменял в коде это и все, я вообще не пойму чего ты до сих пор ещё жив, или ты ждешь чтоб, тебе подали револьвер)))))))))

Надіслати
Поділитися на інших сайтах


было ограничение от 3 до 32

человеку не хватало 3 +- пару символов

в БД ограничение 64 символа

Вопрос: что нужно сделать чтоб человеку можно было добавить несколько символов к названию?

Верный ответ: изменить тут

if ((strlen(utf8_decode($value['title'])) < 3) || (strlen(utf8_decode($value['title'])) > 32)) {
        $this->error['title'][$language_id] = $this->language->get('error_title');
}

Вопрос: что нужно сделать чтоб можно было использовать название статьи более 64 символов?

Ответ: тоже самое что и предыдущий ответ + изменить разрядность поля в БД

Отсюда следует mobiliti не прав, так как одним изменением БД тут не отделаться =)

В этом споре побеждает EvzeNsx

ГИП ГИП УРА!!!

Надіслати
Поділитися на інших сайтах


Надіслати
Поділитися на інших сайтах

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

было ограничение от 3 до 32

человеку не хватало 3 +- пару символов

в БД ограничение 64 символа

Вопрос: что нужно сделать чтоб человеку можно было добавить несколько символов к названию?

Верный ответ: изменить тут

if ((strlen(utf8_decode($value['title'])) < 3) || (strlen(utf8_decode($value['title'])) > 32)) {
        $this->error['title'][$language_id] = $this->language->get('error_title');
}

Вопрос: что нужно сделать чтоб можно было использовать название статьи более 64 символов?

Ответ: тоже самое что и предыдущий ответ + изменить разрядность поля в БД

Отсюда следует mobiliti не прав, так как одним изменением БД тут не отделаться =)

В этом споре побеждает EvzeNsx

ГИП ГИП УРА!!!

Надіслати
Поділитися на інших сайтах


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

Чтобы решить проблему как у ТС, нужно проводить изменения и в коде, и в БД. Но т.к. изменения в БД уже были сделаны на момент описания проблемы, то осталось провести изменения только в коде - теперь понял, или снова что-то не ясно?

Насчет моего обещания - нет ни одного типа данных, который мог бы задать вводимые значения от числа, не равного нулю, до любого другого числа. Конец спора, учи матчасть.

Надіслати
Поділитися на інших сайтах


  • 3 years later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.