Как выбрать уникальное значение по отношению к массиву, выгруженному из базы данных? - PullRequest
0 голосов
/ 21 апреля 2020

При добавлении элемента в базу данных вы должны назначить ему уникальный ключ.
Numeri c не подходит, поскольку может анализировать просто итерацию по всем продуктам.

Как правильно выполнить уникальный цикл проверки?
, который будет генерировать ключ, пока не будет дубликатов.

uniqid(); генерирует соответствующие ключи, но не гарантирует уникальность значения, поэтому я решил проверить с помощью существующие ключи.

Загрузка столбца с ключами из базы данных

$arrayAllKey = R::getAll('SELECT `category_key` FROM `items` WHERE `id_user` = 104);

enter image description here

Поиск и сравнение каждого элемента массива будет дорогостоящим, если имеется большой объем данных.

Следовательно, наилучшим вариантом является выбор указанного значения c из базы данных.

Неудачно создан код, где:
$ unique - ключ, сгенерированный с использованием uniqid ()
$ arrayAllKey - массив существующих ключей
$ findedKey - выбор ячейки из базы данных с ключом
$ arr [0 ] ["category_key"] - значение найденного ключа $ findedKey

// writing the key that is in the database
$unique = "5e9dfcc637f75"; 

// Taking the value of the generated key $unique
// If it finds a value, it will output it; if it doesn't, it won't output anything
$findedKey = R::getAll('SELECT `category_key` FROM `items` WHERE `id_user` = ? and `category_key` = ?', [104, $unique]); 

// If the value of the found key is present
if ($findedKey[0]["category_key"]) {
    // generating a new key
    $unique = uniqid(); 
    // selecting the value from the database again
    $findedKey = R::getAll('SELECT `category_key` FROM `items` WHERE `id_user` = ? and `category_key` = ?', [104, $unique]);
} else {
    // if no duplicates are found, output a unique key
    echo $unique;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...