Как записать уникальные название в базу? 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 624
Друзья как на этой строке сделать так что бы в базу нельзя было записать одно и тоже название которое уже там зарегистрировано? Что бы писало что такое название уже есть. Спасибо.
Код PHP:
  1. new fieldString('team_name', array(
  2. 'title' => LANG_SPORTS_TEAM_NAME,
  3. 'rules' => array(
  4. array('required'),
  5. array('max_length', 100),
  6. array('min_length', 2)
  7.  
  8. )
  9. )),
Посетитель
small user social cms
Медаль
Сообщений: 624
Я уже год мучаюсь над этим вопросом никто не объяснит sad
Код PHP:
  1. new fieldString('team_system', array(
  2. 'title' => LANG_SPORTS_TEAM_LINK,
  3. 'rules' => array(
  4. array('required'),
  5. array('max_length', 100),
  6. array('min_length', 2),
  7. array('slug'),
  8. array('unique', 'sports_teams', 'team_system')
  9. )
  10. )),
Реклама
cms
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 158
Нико, добрый вечер.

В одном из проектов реализовывал подобное. Поищу у себя в файлах, возможно найду для вас готовое решение
Разработка шаблонов для InstantCMS https://red-ray.ru
Шаблоны для InstantCMS 2
Посетитель
small user social cms
Медаль
Сообщений: 624
Red Ray:

Нико, добрый вечер.

В одном из проектов реализовывал подобное. Поищу у себя в файлах, возможно найду для вас готовое решение

Добрый вечер, да тут решаю разные способы но не то. У меня отдельный компонент и там есть поле для пользователей. Теперь надо сделать это поле уникальной что бы пользователь на вписывал 2 раза одно и тоже. Спасибо
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 158
Нико, пока ищу файлы, попробуйте
вместо
array('unique', 'sports_teams', 'team_system')
заменить на
array('unique', '{sports_teams}', 'team_system')

У Вас же таблица с командами называется "sports_teams"?
Разработка шаблонов для InstantCMS https://red-ray.ru
Шаблоны для InstantCMS 2
Посетитель
small user social cms
Медаль
Сообщений: 624
Red Ray:

Нико, пока ищу файлы, попробуйте
вместо
array('unique', 'sports_teams', 'team_system')
заменить на
array('unique', '{sports_teams}', 'team_system')

У Вас же таблица с командами называется "sports_teams"?

Да

У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около '{sports_teams} WHERE (`team_system` = 'love23') LIMIT 1' на строке 1

SELECT COUNT(1) FROM cms_{sports_teams} WHERE (`team_system` = 'love23') LIMIT 1

Код PHP:
  1. new fieldString('team_system', array(
  2. 'title' => LANG_SPORTS_TEAM_LINK,
  3. 'rules' => array(
  4. array('required'),
  5. array('max_length', 100),
  6. array('min_length', 2),
  7. array('slug'),
  8. array('unique', '{sports_teams}', 'team_system')
  9. )
  10. )),
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 158
Нико,

что у вас подразумевает эта конструкция?
`team_system` = 'love23'

можете написать структуру таблицы команд
пример,
id | team | players
1 | barcelona | messi
2 | ..........................
Разработка шаблонов для InstantCMS https://red-ray.ru
Шаблоны для InstantCMS 2
Посетитель
small user social cms
Медаль
Сообщений: 624
id | team_system | user_id | team_name
1 | zenit | 1 | Зенит

Нужно например что бы зенит не повторился в team_system, а он хоть 100 раз будет повторятся.

love 23 это просто пример. { } при скобках вообще не записывает
Редактировалось: 1 раз (Последний: 19 апреля 2018 в 01:04)
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 158
Нико,

team_system - название команды
и если например Зенит есть в базе,
то при попытка добавить Зенит снова вывести ошибку, верно?

и еще важно, у Вас при попытки записи в бд возникла ошибка?
и в ней скорее всего указывалось что
Неизвестный столбец team_system' в 'sports_teams' ?
Разработка шаблонов для InstantCMS https://red-ray.ru
Шаблоны для InstantCMS 2
Посетитель
small user social cms
Медаль
Сообщений: 624
Red Ray:

Нико,

team_system - название команды
и если например Зенит есть в базе,
то при попытка добавить Зенит снова вывести ошибку, верно?

и еще важно, у Вас при попытки записи в бд возникла ошибка?
и в ней скорее всего указывалось что
Неизвестный столбец team_system' в 'sports_teams' ?

Нет при попытке team_system это столбец делаем так как это ссылка на команду она должна быть одна team/zenit
Посетитель
small user social cms
Медаль
Сообщений: 624
Red Ray:

Нико,

team_system - название команды
и если например Зенит есть в базе,
то при попытка добавить Зенит снова вывести ошибку, верно?

и еще важно, у Вас при попытки записи в бд возникла ошибка?
и в ней скорее всего указывалось что
Неизвестный столбец team_system' в 'sports_teams' ?

Ошибку решил
Код PHP:
  1. 'rules' => array(
  2. array('required'),
  3. array('max_length', 100),
  4. array('min_length', 2),
  5. array('slug'), вот эта функция говорит что надо писать русскими буквами
  6. array('unique', '{sports_teams}', 'team_system')
  7. )
Но все равно записывает все подряд
Редактировалось: 2 раз (Последний: 19 апреля 2018 в 01:25)
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 158
Нико,

может нужно проверять столбец team_name?
Разработка шаблонов для InstantCMS https://red-ray.ru
Шаблоны для InstantCMS 2
Посетитель
small user social cms
Медаль
Сообщений: 624
Red Ray:

Нико,

может нужно проверять столбец team_name?

а какая разница если я хочу проверят то или другое, я ведь определяю
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 158
Все же попробуйте этот код

Код PHP:
  1. new fieldString('team_system', array(
  2. 'title' => LANG_SPORTS_TEAM_LINK,
  3. 'rules' => array(
  4. array('required'),
  5. array('max_length', 100),
  6. array('min_length', 2),
  7. // array('slug'),
  8. array('unique', 'sports_teams', 'team_name')
  9. )
  10. )),

Если Зенит у вас уже есть в базе,
то попробуйте добавить еще один Зенит и вас по идее высветится что такое имя уже используется
Разработка шаблонов для InstantCMS https://red-ray.ru
Шаблоны для InstantCMS 2
Посетитель
small user social cms
Медаль
Сообщений: 624
Red Ray:

Все же попробуйте этот код

Код PHP:
  1. new fieldString('team_system', array(
  2. 'title' => LANG_SPORTS_TEAM_LINK,
  3. 'rules' => array(
  4. array('required'),
  5. array('max_length', 100),
  6. array('min_length', 2),
  7. // array('slug'),
  8. array('unique', 'sports_teams', 'team_name')
  9. )
  10. )),

Если Зенит у вас уже есть в базе,
то попробуйте добавить еще один Зенит и вас по идее высветится что такое имя уже используется

Щас проверю
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: