[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Joomla MySQL обработчик ошибки
vasya000
Ребя,всем привет!
Мне нужно что бы на сайте при создании 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-шный код..... ohmy.gif

Спустя 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
можно ли сделать так,что бы описание этого чела который создает повторный материал перенеслось к материалу которое уже было создано? blink.gif
Хелп!

Спустя 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
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.