Diskuze: Databáze - relace?

Ostatní jazyky SQL SQL a databáze Databáze - relace?

Avatar
Michael Kufner:

Dobrý den,
potřeboval bych pomoci. Trošku to zjednoduším, podrobné vysvětlení snad nebude třeba a akorád by to stížilo pochopení (na požádání rád podrobně vysvětlím).
Dejme tomu, že mám formulář a prostřednictvím něho (select boxem) odesílám čísla (od 1 do 100). Odeslaná čísla se ukládají jako záznamy do DB tabulky spolu s nějakým údajem (např. jméno uživatele).

Zároveň mám i druhou tabulku, ta obsahuje daná čísla od 1 do 100 a k nim vždycky nějakou hodnotu..
ID HODNOTA
1 Ekonomie

Potřebuji, aby jakmile přibude v DB záznam, že dané číslo bylo odesláno, potřebuji aby se dané číslo neukázalo v nabídce select boxu. Bylo mi doporučeno, že mám využít tzv. foreign keys (cizí klíče, relace), ale moc nerozumím použití. Toto téma jsem hledal na internetu a nic moc kloudného jsem nenašel.
Děkuji za jakoukoli pomoc/nasměrování :)

 
Odpovědět 6. ledna 21:08
Avatar
shaman
Člen
Avatar
shaman:

Predpokladam ze pouzivas PHP na generovanie HTML formulara. Takisto predpokladam ze pouzivas mysql datazu. Takze ja by som to urobil napr takto.

  1. V php poslem select do DB ktory mi vyberie zoznam cisiel ktore tam uz su a ulozim si ich do pola. Dalej si spravim ten cyklus od 1 do 100 a v nom budem generovat HTML kod pre samotne selecty. Zaroven vo vnutri tohto cyklu budem podmienkou if kontrolovat ci sa cislo cyklu nachadza v poli ktore som vytiahol z DB. Ak ano tak select na to cislo nevytvorim. Hotovy fomular odoslem ako HTML uzivatelovi.
  2. Uzivatel dostane HTML stranku na ktorej bude mat select boxy tych policok ktore v DB este nie su. A teda vyberie si tie ktore su volne a odosle vyplneny formular naspat na server.
  3. Server prijme formularove hodnoty a ulozi ich do DB. Zacne vytvarat HTML stranku kde informuje o ulozeni a zaroven pokracuje od bodu 1. aby vytovoril novy HTML formular s neobsadenymi cislami.

Neviem co chces dosiahnut ale toto je teoreticky aj prakticky jednoduche zrealizovat. Neviem naco su ti dve tabulky. V jednej su moznosti a v druhej su ulozene vybrate hodnoty? Foreign keys by sa tu dalo pouzit ale asi by som to na tvojom mieste neriesil lebo nie je potrebne na vyriesenie tvojho problemu.

Nahoru Odpovědět 7. ledna 1:16
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
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.