Autor Zpráva
RadimR
Profil *
Zdravím,

potřeboval bych poradit.
Mám v mysql databázi, do které vkládám data (řádky) tabulky z html formuláře. První bunkou v řádku v tabulce je ručně zadané číslo vloženého záznamu. Tzn. od 1 dále. Potřeboval bych funkci, která:
- mi přečte z databáze v tabulce pořadové číslo z první bunky posledního vloženého záznamu a k tomuto přičte 1
- a toto číslo vloží v html formuláři do formulářového políčka k vložení nového záznamu pořadového čísla

Tzn. nějak takto, s tím rozdílem, že po přejetí myší vloží místo "ahoj" právě toto číslo.

<form name="formular">
<p><input type="text" name="policko" size="20"> </p>

</form>
<p><a href="#" onmouseover="document.formular.policko.value = 'ahoj'">přejeď</a><br>
</p><form name="formular2">
<p><input type="text" name="policko" size="20"> </p>
</form>

PS: čísla tabulky sloupec id typ int(10) s funkcí auto_increment jsou jiná na rozdíl od ručního vložení čísla vloženého záznamu (z důvodů mazaní nevyhovujích řádků apod.) Proto potřebuji výše uvedený postup.
AM_
Profil
Výše uvedený postup má logický nedostatek. Představ si následující situaci, kdy uživatel A a B současně přidává řádek do DB.
- současně je maximální index v DB číslo 1
- uživatel A přejede přes "přejeď" a do "policko" se mu dosadí 2
- uživatel B přejede přes "přejeď" a do "policko" se mu dosadí také 2 (do DB nebylo ještě od A nic uloženo)
- uživatel A uloží záznam č.2
- uživatel B má problém

to v tom PS je trošku češtinský paskvil, takže nechápu, co tím myslíš.
čísla ... s funkcí auto_increment jsou jiná na rozdíl od ručního vložení čísla vloženého záznamu tedy ručně vložená čísla vloženého záznamu jiná nejsou. Aneb jaký je rozdíl mezi vránou? má obě nohy delší. Nemůžeš říct o množině čísel, že je "jiná", je "jiná než něco".

Pokud jsi tím myslel, že sloupec auto_increment se přeindexuje, když smažeš nějaký záznam, tak to není pravda, když budeš mít záznamy 1,2,3 a smažeš 2, zbude 1,3 a nikoli 1,2.
Pokud ti jde o to, že potřebuješ nějaké vlastní číslování jiné než po sobě jdoucí řada čísel, pak ti auto_increment skutečně nepomůže, ale toto číslo bych generoval až při vložení záznamu, nikoli přes javascript (který by se musel přes AJAX dotazovat do DB na aktuální index, a ještě by to bylo blbě kvůli výše zmíněnému problému).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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