Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: MySQL

Aktivity
Avatar
oggymotslp
Člen
Avatar
oggymotslp:8.2.2016 18:58

Zdravím,

dlouho už jsem sem nepsal. :D Ale když jsem kontroloval zda to funguje správně, tak jsem zjístil, že když pomocí formuláře vytvořím záznam, tak to neveme volné ID, ale veme to poslední nepoužité, takže když něco odstraním, tak tam zůstane mezera mezi ID a to mě trochu nevyhovuje, nedá se nějak nastavit, aby to vzalo volné ID a ne poslední, které nebylo nikdy použito ?

Db::query('
                               INSERT INTO otazky (autor, text, ale, ano, ne)
                               VALUES (?, ?, ?, ?, ?)
                       ', $_POST['autor'], $_POST['text'], $_POST['ale'], "0", "0");
                       $zm['zm_id'] = Db::getLastId();
Editováno 8.2.2016 18:58
Odpovědět
8.2.2016 18:58
Proč to dělat jednoduše, když to jde i složitě :D
Avatar
Vít Pleskot
Člen
Avatar
Vít Pleskot:9.2.2016 7:22

Ahoj, pokud mas v tabulce na ID nastaven autoincrement, tak je to standardni chovani a vyuziva ho vetsina lidi. Neustale narustajici hodnota a nevyuzivani starsich hodnot bude je zaroven i ochrana proti nechtenemu spojeni nove vlozenych dat s vazanymi daty starych dat. Pokud ovsem nutne potrebujes resit vyplneni rady budes muset udelat tzv. self join. To znamena napojit tabulku na sebe sama kde podminkou pro spojeni bude neco jako id+1 = id. Tim to vyhodi id ktere zbyde. Nevim proc potrebujes vyplnit prazdne indexy, ale pokud bych to delal, tak ne nad sloupcem ktery mi slouzi jako unikatni nebo lepe receno primarni index, ale spise nad nejakym pomocnym.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
9.2.2016 7:22
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.