vasya000
15.08.2009 - 00:54
Ребя,всем привет!
Мне нужно что бы на сайте при создании 2х одинаковых материалов выскакивала (открывалось окно) ошибка, и текст,-мол такой материал уже существует,воспользуйтесь поиском!
Може профи этого форума объяснят популярным языком что мне нужно сделать!Буду очень признателен!
Знаю что нужно создать запрос в БД MySQL
SQL |
ALTER TABLE `jos_content` ADD UNIQUE ( `title` ) |
что бы материал с названием какое уже есть в базе не создался,а вот как жесткую ошибку которая вылазит при этом сделать более аккуратной, вставить хотя бы свой текст, не знаю!
Может с Ajax все это связать,что б наглядно все было....?
Помогите плиз!
Спасибо!
Спустя 7 часов, 31 минута, 2 секунды (15.08.2009 - 07:25) twin написал(а):
Вообще этот оператор совсем не для таких целей предназначен. Уникальность нужно проверять простым поиском. И выводить текст ошибки в случае удачного запроса. Имеется ввиду, что запрос выдаст результат больше 0.
Спустя 49 минут, 42 секунды (15.08.2009 - 08:14) Michael написал(а):
Команда MySQL
SQL |
ALTER TABLE `jos_content` ADD UNIQUE ( `title` ) |
создаст тебе ограничение уровня таблицы - никак туда не добавишь повторяющееся значение ключа
при этом следующий код
PHP |
$result=mysql_query("insert into `xxx` set title='dfdfd'"); if ($result) { // все ОК } else { //Вывести сообщение } |
позволит обработать результат. (хотя лучше предварит. просматривать как ниже указано)
Если не вводить ограничение уровня таблицы, можно так
PHP |
//Ввели $title $result=mysql_query("select count(*) from `xxx` were title='$title'"); $row=mysql_fetch_row($result); $kol=$row[0]; if ($kol) { // Уже имеется запись - Вывести сообщение } else { //все ОК } |
- т.е проконтролировать на уровне приложения.
Но я лично посоветовал бы 1-ы вариант
Спустя 3 часа, 33 минуты, 19 секунд (15.08.2009 - 11:48) vasya000 написал(а):
Michael спасибо тебе!
ща тока надо разобраться куда воткнуть этот PHP-шный код.....
Спустя 3 часа, 31 минута, 17 секунд (15.08.2009 - 15:19) Michael написал(а):
Там где обрабатываешь входные параметры (например $_POST). Примерно так:
PHP |
if (isset($_POST['button_add'])) { // нажата кнопка добавить if (isset($_POST['text_title'])) { // введены данные 1) // обработка на инъекции и атаки 2) // обработка на уникальность (выше): // если нет записи добавляем // если есть - выводим сообщение пользователю
} } |
С AJAX конечно лучше - без перезагрузки основной страницы.
Спустя 4 часа, 3 минуты, 8 секунд (15.08.2009 - 19:22) vasya000 написал(а):
Michael, смотри! а можно сделать так:
материал с названием NameA уже есть
другой чел создает материал с идентичным названием NameA
можно ли сделать так,что бы описание этого чела который создает повторный материал перенеслось к материалу которое уже было создано?
Хелп!
Спустя 2 месяца, 2 дня, 2 часа, 19 минут, 24 секунды (17.10.2009 - 21:42) vasya000 написал(а):
Michael
привет! а куда записать этот код
Код |
$result=mysql_query("insert into `xxx` set title='dfdfd'"); if ($result) { // все ОК } else { //Вывести сообщение } |
у меня joomla 1.5.9