Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Исключение повтора числа в таблицы БД


Автор: CTAzz 4.7.2009, 01:26
Проблема в следующем. В одном из полей БД хранятся числа, пусть они будут четырехзначные ХХХХ.
Перед тем как попасть в БД это число генерируется рандомно  
Код

$rand=rand(1000,9999);

После должен пойти тот процесс, который мне ни как в голову не может уложится.
Это рандомное число должно сверится с БД и узнать есть ли это число там или нет. Если числа нет, то программа выполнена и число записывается, если число встретилось, то число снова должно рандомно выбратся и снова проверится, и делать это до тех пор, пока не появится то число, которого нет в БД, как это можно всё упростить/организовать? smile 

Автор: DioNiR 4.7.2009, 02:00
Создаёшь функцию которая проверяет выполняет запрос добавление в БД и в ней же проверку типо:

Код
function aa($num)
{
    if ( ищешь такое число )
    {
        Найдено ссылаешься снова на эту функцию типо:
        aa($num);
        Только создаёшь новое число
    }
    else
    {
        Добавляешь в бД
    }
}


Автор: NewDima 4.7.2009, 05:19
исключение повтора в базе данных осуществляется с помощью самой базы данных, для этого используются ключевые поля
Устанавливаешь то числовое поле в ключевое.
Код

function addValueToDB($value) {
    //здесь в зависимости от того, какая СУБД используется, выполняешь транзакцию на добавление,
    //и в случае, если не добавлена,возвращаешь false, а если добавлена, true
}
while (!addValueToDB(rand(1000,9999))) {}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)