Как написать функцию, которая бы генерировала промокод, и проверяла его на уникальность в базе, если нашла совпадение, то генерировала заново и опять проверяла.
Если после проверки по БД совпадений не найдено происходила бы запись.
Подскажите как правильно написать функцию.
Есть код:
function gen_code($length = 7){
$num = range(0, 9);
$symbols = array_merge($num, $_alf);
shuffle($symbols);
$code_array = array_slice($symbols, 0, (int)$length);
$code = implode("", $code_array);
return $code;
}
$resultStat = $mysqli->query("SELECT id,promocode FROM stat WHERE promocode !== '0' and hash_person = '$global_id_visit' and idp = '$idp'");
// если находит промо код.
if ($resultStat->num_rows) {
$rowStat = $resultStat->fetch_assoc();
// удаляем из поля код.
$mysqli->query("UPDATE stat SET promocode = '0' WHERE id = $rowStat['id']");
// заносим его в переменную
$promocode = $rowStat['promocode'];
} else { // если не находим код, то генерируем новый
$promocode = gen_code(5);
// проверяем с генерированный код на совпадение.
$checkStatCT = $mysqli->query("SELECT id,promocode FROM stat WHERE promocode == '$promocode' and idp = '$idp'");
if ($resultStat->num_rows > 0) {
$promocode = gen_code(5);
}
}
Может, брать все promocode из БД, заносить их в массив и передавать в функцию, уже в ней делать проверку на совпадение, но как в функции генерации эту штуку дописать?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Использую Retrofit2, хочу отправить на сервер POST параметры
Хотелось бы задавать позиционирование текста (annotate) от верхнего левого края, а не от нижнего левого края
нужно организовать отображение картинки с описанием к нему при выборе option в select box, которое будет выводится слева от select
Есть хеш, который я генерирую функцией, после я помещаю его в таблицу с пользователями, после я использую команду setcookie и там присваиваю значения...