Autor Zpráva
xciza
Profil
Ahoj,
je nějaká funkce v php pro generování id podle požadovaného tvaru, případně jakým postupem tohoto efektu dosáhnout?
Například pro regisrované uživatele, kde klasický user bude mít své id začínající například U00201 a další bude mít U00202 atd. a user s rozšířenými právy bude mít A00001 a další bude mít A00002 atd. až třeba po A02000.

Díky
mimochodec
Profil
Na nic takového php funkce není. ID v drtivé většině případů generuje databáze automaticky na základě nahozeného "auto increment". Jestli chceš dávat uživatelům rozdílné úrovně práv, udělej si pro to sloupec v tabulce, kde bude třeba číslo 0-3.
xciza
Profil
No dobře tohle byl blbí příklad s temi právy pro usery. Tohle id bude mít proste každý nově registrovaný uživatel a potřebuji tyhle id abych rozlisil o jake uzivatele jde (bezny, freelancer) a pak podle tohohle id aby slo taky vyhledavat. Id sloupec s auto iincrement v db samozrejme mam ale potrebuju jeste tenhle jeden sloupec. Byl bych tedy vdecny za nejaky nastrel jak tohle resit.

díky
Fisir
Profil
Reaguji na xcizu:
Nepotřebuješ další ID jen na to, abys rozlišil o koho jde. Přidej si prostě další sloupec a do něj vkládej čísla identifikující typ uživatele (třeba 1 pro běžného, 2 pro freelancera, …).
xciza
Profil
Jenže prostě každý tento uživatel musí mít prostě to svoje id podle vzoru.
Tori
Profil
xciza:
Asi bych pro účely identifikace uživatele v DB (= cizí klíče) používala jen vygenerované číselné ID, ne ten kód. Pak by se dalo vložit uživatele bez toho kódu, a druhým dotazem mu ho doplnit:
update t,
(select count(*) cnt from t where kod like 'A%' and t.id < 150) ref
set t.kod = concat('A', lpad(ref.cnt+1, 4, '0')) -- pro kód typu "A0001", 150 = ID nového záznamu
where t.id = 150

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0