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

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X
#1 18 апреля 2018 в 20:32
Друзья как на этой строке сделать так что бы в базу нельзя было записать одно и тоже название которое уже там зарегистрировано? Что бы писало что такое название уже есть. Спасибо.
  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. )),
#2 18 апреля 2018 в 23:34
Я уже год мучаюсь над этим вопросом никто не объяснит sad
  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. )),
#3 19 апреля 2018 в 00:10
Нико, добрый вечер.

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


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

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

Red Ray

Добрый вечер, да тут решаю разные способы но не то. У меня отдельный компонент и там есть поле для пользователей. Теперь надо сделать это поле уникальной что бы пользователь на вписывал 2 раза одно и тоже. Спасибо
#5 19 апреля 2018 в 00:22
Нико, пока ищу файлы, попробуйте
вместо
array('unique', 'sports_teams', 'team_system')
заменить на
array('unique', '{sports_teams}', 'team_system')

У Вас же таблица с командами называется "sports_teams"?
#6 19 апреля 2018 в 00:34


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

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

Red Ray

Да

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

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

  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. )),
#7 19 апреля 2018 в 01:00
Нико,

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

можете написать структуру таблицы команд
пример,
id | team | players
1 | barcelona | messi
2 |…
#8 19 апреля 2018 в 01:03
id | team_system | user_id | team_name
1 | zenit | 1 | Зенит

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

love 23 это просто пример. { } при скобках вообще не записывает
#9 19 апреля 2018 в 01:11
Нико,

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

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


Нико,

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

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

Red Ray

Нет при попытке team_system это столбец делаем так как это ссылка на команду она должна быть одна team/zenit
#11 19 апреля 2018 в 01:24


Нико,

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

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

Red Ray

Ошибку решил
  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. )
Но все равно записывает все подряд
#12 19 апреля 2018 в 01:27
Нико,

может нужно проверять столбец team_name?
#13 19 апреля 2018 в 01:29


Нико,

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

Red Ray

а какая разница если я хочу проверят то или другое, я ведь определяю
#14 19 апреля 2018 в 01:34
Все же попробуйте этот код

  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. )),

Если Зенит у вас уже есть в базе,
то попробуйте добавить еще один Зенит и вас по идее высветится что такое имя уже используется
#15 19 апреля 2018 в 01:35


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

  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. )),

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

Red Ray

Щас проверю
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.