|
|
|
| Всем доброго времени суток
Помогите пожалуйста разобраться с такой проблемой (или лучше конечно поделитесь примером). Нужно при вставке данных в базу проверить уникальность одного поля, если есть повтор вывести уведомления о ошибке, если нет - выполнить скрипт вставки, помогите советом как это реализовать.
Спасибо | |
|
|
|
|
|
|
|
для: bibika
(24.10.2010 в 19:37)
| | INSERT IGNORE INTO
и
mysql_affected_rows()
Только поле нужно сделать уникальным. | |
|
|
|
|
|
|
|
для: Николай2357
(24.10.2010 в 19:57)
| | IGNORE-то зачем? | |
|
|
|
|
|
|
|
для: Trianon
(24.10.2010 в 19:59)
| | Поле уникальное. А дальше я не понял. Пожалуйста приводите полный код если не трудно. Я решил делать по такому алгоритму: выбираем все значение поля который проверяется и кладем его в переменную. А как сравнить с данными которые приходят с формы при вставке данных в базу я не знаю. | |
|
|
|
|
|
|
|
для: Trianon
(24.10.2010 в 19:59)
| | >IGNORE-то зачем?
Ну автор же хочет сигнала...
Если не уникальное, записи не будет и функция вернет 0. На это и можно сориентироваться. | |
|
|
|
|
|
|
|
для: Николай2357
(24.10.2010 в 20:18)
| | Извините, я опять ничего не понял. Приведите пожалуйста, если не трудно, полный код.
Да я напутал, извините, поле не уникальное. Поскольку с этими данными уже работали в других средах, и среди этого поля есть множество повторов. Как в таком случае можна решить эту проблему
Спасибо | |
|
|
|
|
|
|
|
для: bibika
(24.10.2010 в 20:20)
| | Если не уникальное, запрос на подсчет строк... Если больше 0, значит не добавлять...
<?
$res = mysql_query("SELECT COUNT(*) AS `cnt` FROM `table`
WHERE `field` = '". mysql_real_escape_string($var) ."'"
);
if(mysql_result($res, 0) > 0)
echo 'Ай, есть такой';
|
| |
|
|
|
|
|
|
|
для: Николай2357
(24.10.2010 в 20:18)
| | если не уникальная, то запрос будет отвергнут, mysql_query вернет false | |
|
|
|
|
|
|
|
для: Trianon
(24.10.2010 в 20:46)
| | О, спасибо уважаемый Trianon за подсказку. | |
|
|
|
|
|
|
|
для: bibika
(24.10.2010 в 21:10)
| | ещё можно хранить копию поста в MD5 хеше и при совпадении давать ошибку | |
|
|
|
|
|
|
|
для: Uzer44
(25.10.2010 в 00:13)
| | Спасибо. | |
|
|
|