programowaniem zajmuje się bardzo amatorsko i nie wszystko jest dla mnie zrozumiałe.
Chciałbym utworzyć skrypt, który dodaje do bazy danych wiersz z dwoma wartościami - z stringiem i unikalnym ciągiem znaków, ale chciałbym aby skrypt najpierw sprawdził czy w bazie istnieje już taki ciąg i jeśli istnieje to wygenerował nowy i znowu sprawdził i tak w kółko dopóki nie wygeneruje się wolny, a jeżeli znajdzie już wolny ciąg to dopiero wtedy dodał wiersz do bazy.
Budowa bazy danych:
id | string | hash
Do generowania "hasza" używam takiej funkcji:
function generateHash() { $str_result = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_'; }
No i nie wiem w jaki sposób powinna wyglądać funkcja sprawdzająca czy w bazie istnieje już taki hash.
Myślałem, aby zrobić to w taki sposób:
$stmt = $db->prepare('SELECT hash FROM tabela WHERE hash = :hash'); $stmt->bindValue(':hash', $generatedHash, PDO::PARAM_STR); $stmt->execute(); $stmt = $stmt->fetch(PDO::FETCH_ASSOC); if (!$stmt) { // hash nie istnieje i można dodać } else { // hash istnieje i trzeba wygenerować nowy }
No i tu pojawiają się schodki. Jak to zrobić, aby skrypt wygenerował nowy ciąg znaków z w/w funkcji i znowu sprawdził, czy taki ciąg już istnieje.
Mam nadzieję, że w miarę to zrozumiale napisałem i otrzymam odpowiedź na to w jaki sposób to zrobić.