Spesl SQL dotaz

Mam ve jednom soubci cisla od 10 do 99 .. proste dvouciferny.... a bcas smazu zaznam treba 45 .... tak potrebuju abych mohl ukladat novy zaznam najit volne misto .. npr .. 43,44,46,47... a vim ze mam volne misto na 45 kam muzu ukladat... nejaka rada?
Když víš, že máš volné místo na 45, tak tomu novému záznamu zadáš do toho sloupce hodnotu 45.
Pokud chceš zjišťovat díry v číselné řadě, tak pak asi nezbývá, než řadu načíst, setřidit a cyklem hledat chybějící číslo.
DAwid (hokejparta.wz.cz)
Proc?
Proc to nepridat na konec? Jaky je v tom rozdil?
Jestli cisla pouzivas na cislovani, tak cislovat muzes v PHP. Jen si musis zapamatovat, kde jsi skoncil, pokud je to na vice stranek.
asi pouzivas cyklus while ... fetch tak tam pridas pred to $i=0; na konci $i++ a mas cislovani od 1 do n zaznamu z tabulky.
Proste mne nenapada rozumny duvod. Uved priklad?
dvojciferne cislo je jako id... a k nemu zrirazuji dalsi hodnoty... obcas se stane ze se nejaka smaze.. a vznikne dira... a ja potrebuju tu diru zaplacnout prtoze id je jen dvojcirerne a brzo bych nemohl autoinkrementaci pridavat dalsi hodnoty
jinak to delam tak ze necham vypsat do pole a zacinam od cisla 10 a indes je taky 10 -- a takhle pokracuji..pak jen projdu pole a kde se mi nerovna index s cislem tam je dira... no ale zajimalo mne jestli neexistuje najaka lepsi varianta
myslim, ze sql ma nejake optimize, ktere to resi...
autoincrement si myslim automaticky zvetsuje rozsah, pokud se prekroci.
dawid: pořád nechápu, proč to neuděláš tak, jak ti radí péťa a spol.
Pokud jsem tvůj požadavek pochopil správně, tak nemá cenu vymýšlet nějaké doplňování hodnot do "děr" v tabulkách a potom to bůhví jak třídit.
Tvůj problém bych spíš viděl v dostatečné neinformovanosti / neznalosti mysql.

Doporučoval bych ti tabulku upravit tak, aby třeba sloupec ID byl autoinc. a datový typ aby byl INTEGER bez záporných čísel.
No a výběr z DB je potom otázkou (ne)šikovně napsaného SQL dotazu.
"Proč zatěžovat PHP s nějakým tříděním, když to můžeme přenecaht SQL serveru?"
Jde o to ze kvuli orcitym podrobnostem ktere by bylo nadlouho vysvetlovat nemuzu u id prekrocit dvojciferne cislo... proto mi nevyhovuje autoincrement... a je tim omezen i max pocet zaznamu .. proto potrebuju vyplnovat diry ktere vznikaji mazanim....
Jde to řešit na úrovni PHP (cyklem, viz. peta).
Jo a když už jsme u toho, který datový typ omezuje autoinc. na délku dvou znaků? Že by nějaká novinka?
NEjde o omezeni datoveho typu... jde o navazani do daslich funkci programu.... z tech dvojcifernych cisel pomoci urcitych pravidel vytvorim treba jedno sesticiferne.... a s tim pak pracuji.. proto nemuzu prekrocit pocet cifer... a musim zaplacavat volna mista...
Tak tomu já říkám špatně napsaná aplikace. Začni znova, pořádně a tak, aby tě nějaké dvouciferné číslo neomezovalo ...

No a pokud stále trváš na svém, tak ti pomůžou průchody polem (viz. www.php.net)
dawid (hokejparta.wz.cz)
ok, tak v tom pripade:
tabulka
- sloupec id (auto) -> naplnit 1-99
- sloupec plna = 0/1
- ostatni sloupce
cili misto funkce smazat zavolas funkci zmen plna->0 a vsechny select upravis tak, aby meli where plna=1

delete v podstate udela totez, jen si bunku poznaci jako smazanou a pri nejblizsim insert prepisuje prave volnou, jenom ji da id podle nastaveni tabulky autoid.
Nejpomalejsi je mazani a insert tu poli s promennou delkou, kde proste musi alokovat novou pamet, pokud je treba pole typu TEXT delsi nez puvodni.
Popravdě, taky moc nechápu proč, ale je mnoho věcí, které nechápu. Já bych to řešil další tabulkou :-) Pokud smažu záznam s tím podivným ID třeba 34, tak bych si do tabulky volné, přidal, že 34 je volné..... uf, koukám, že to řešení ala peta, je lepší....
Ale stejně, dawide, už jsi toho tady napsal tolik, že by mě fakt zajímalo, proč takováhle náročnost? Tahají se podle toho dvouciferného nesmyslu data odjinud nebo co? Proč? Povídej, přeháněj, jsem zvědavý. :-)