PHP - SQL pomocí PDO

ZAJDAN

  • *****
  • 2 015
    • Zobrazit profil
    • E-mail
Re:PHP -SQL pomocí PDO
« Odpověď #15 kdy: 23. 09. 2015, 19:18:09 »
hosi diky za kazdej lepsi typ....nejsem expert, ale rad si necham poradit pro budouci zlepseni
100 hlav 100 napadu a hold kazdej neni dokonalej
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


podlesh

Re:PHP -SQL pomocí PDO
« Odpověď #16 kdy: 23. 09. 2015, 20:06:34 »
Tohle je klasická amatérská/začátečnická chyba, celkem pochopitelné pokud jsi nikdy neslyšel o normálních formách.

Doporučuji si o nich něco přečíst, bohužel neznám nic co by nebylo hodně teoretické - ale třeba se někdo chytne a dá pěkný odkaz.

Kit

Re:PHP -SQL pomocí PDO
« Odpověď #17 kdy: 23. 09. 2015, 20:43:24 »
Tak tedy nedestruktivní verze. Nejprve vytvořím tabulku:
Kód: [Vybrat]
CREATE TABLE cabinet(id SERIAL, customer_id INTEGER, pin VARCHAR(8), used DATETIME);
Nyní ji naplním PINy - tohle je přidání jednoho PINu:
Kód: [Vybrat]
INSERT INTO cabinet(customer_id, pin) VALUES (42, '12345678');
Prosté ověření, zda je platný PIN:
Kód: [Vybrat]
SELECT customer_id FROM cabinet WHERE customer_id=:uniq AND pin=:pin AND used IS NULL;Při úspěchu je počet nalezených záznamů ">0"

Ověření PINu a současně jeho zneplatnění:
Kód: [Vybrat]
UPDATE cabinet SET used=NOW() WHERE customer_id=:uniq AND pin=:pin AND used IS NULL;Úspěch poznáš podle počtu ovlivněných řádek. "0" neúspěch, ">0" úspěch. Zároveň je záznam označen časovým razítkem použití.

A to je vše. Jedna tabulka - víc nepotřebuješ. Snad jen doplnit index:
Kód: [Vybrat]
CREATE INDEX cabinet_idx ON cabinet(customer_id, pin);
Pokud bys chtěl obnovit platnost kódů, stačí jen vymazat časová razítka.
Kód: [Vybrat]
UPDATE cabinet SET used=NULL;

ZAJDAN

  • *****
  • 2 015
    • Zobrazit profil
    • E-mail
Re:PHP -SQL pomocí PDO
« Odpověď #18 kdy: 23. 09. 2015, 22:36:28 »
Kite moc diky za prikladovy vyklad.
ja se ale obavam ze to do jedne tabulky nepujde nacpat.
jedna zvlastni tabulka musi byt jako zasobnik preddefinovanych pinu/kodu
co sloupec to skrin, co radek to pin/kod
cabinet_1 | cabinet_2 | cabinet_3
00000001   00000022   00000112
00000021   00000012   00003455
00000661   00000312   00002344
00002346   00000002   00002222

kdyby to bylo v jedne tabulce, tak co radek to zakaznik a tim padem i kod ktery mu nenalezi
pokud ty piny dam do solo tabulky ve smyslu zasobniku, tak si jen checknu ze zakaznik ID abc ma cabinet_2
sahnu do zasobniku pro cabinet_2 z druhe tabulky a priradim mu pin co je na prvni pozici, smazu ho a zapisu ho do sloupce pin v tabulce kde je zakaznik veden

z tabulky zakazniku, krasne uvidim jeho aktualni prirazeny pin a v tabulce se zasobnikem pinů jiz tento pin nefiguruje
za mesic si zakaznik zasle pozadavek na zmenu pinu, proces se zopakuje...zjisti se ze je to zakaznik s ID abc, nalezi mu cabinet_2, sahne se do zasobniku, priradi se novy pin, updatne se v tabulce se zakaznikem a ze zasobniku smaze
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Re:PHP - SQL pomocí PDO
« Odpověď #19 kdy: 24. 09. 2015, 05:51:14 »
Tak presne tohle je ta zacatecnicka chyba a chybejici teoreticke znalosti (toliko probirane v tematech jestli ma cenu titul).

Takto navrzena tabulka je proste z principu spatne.
Děkuji za možnost editace příspěvku.


Kit

Re:PHP -SQL pomocí PDO
« Odpověď #20 kdy: 24. 09. 2015, 08:14:35 »
Kite moc diky za prikladovy vyklad.
ja se ale obavam ze to do jedne tabulky nepujde nacpat.
jedna zvlastni tabulka musi byt jako zasobnik preddefinovanych pinu/kodu
co sloupec to skrin, co radek to pin/kod

Vidím, že jsi to stále nepochopil. Nezbývá mi, než nad tebou zlomit hůl a nechat tě svému osudu. Snad ten můj výklad pomohl někomu jinému.

k

Re:PHP -SQL pomocí PDO
« Odpověď #21 kdy: 24. 09. 2015, 08:27:13 »
tabulka code_stack  je zasobnikem pro vsechny cabinety
co sloupec v teto tabulce to jedna skrin
kazde prirazeni kodu se v patricnem sloupci vystreli jeden radek ...jako v revolveru :_)

Sedni si do kouta a čekej až to přejde. Pak si zaplať školení na SQL databáze.

ZAJDAN

  • *****
  • 2 015
    • Zobrazit profil
    • E-mail
Re:PHP -SQL pomocí PDO
« Odpověď #22 kdy: 24. 09. 2015, 09:23:22 »
Kite moc diky za prikladovy vyklad.
ja se ale obavam ze to do jedne tabulky nepujde nacpat.
jedna zvlastni tabulka musi byt jako zasobnik preddefinovanych pinu/kodu
co sloupec to skrin, co radek to pin/kod

Vidím, že jsi to stále nepochopil. Nezbývá mi, než nad tebou zlomit hůl a nechat tě svému osudu. Snad ten můj výklad pomohl někomu jinému.

vážím si toho, že se snažím mi pomoci než jen plané keci jako někteří zůčastnění
ano jednu zásadní věc jsem z tvého příkladu nepochopil.....odkud se berou přidělované piny?
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

NooN

Re:PHP - SQL pomocí PDO
« Odpověď #23 kdy: 24. 09. 2015, 09:47:07 »
Vsetko bude fungovat skoro ako u teba, len namiesto horizontalne to bude vertikalne.

ZAJDAN

  • *****
  • 2 015
    • Zobrazit profil
    • E-mail
Re:PHP - SQL pomocí PDO
« Odpověď #24 kdy: 24. 09. 2015, 09:48:47 »
možná nebyla pochopena jedna zásadní věc a to, že ani zákazník ani já ty piny nedefinujeme
skříň obsahuje zámek, který má již výrobcem nadefinovanou sadu pinů, žádné jiné nejdou použít
proto tyto piny musím někam uložit a dle potřeby je automaticky přiřazovat (vždy první ze sady, ne náhodně)

způsob, kterým jsem to provedl já funguje, jen s tím rozdílem, že mám dvě tabulky, ale vážně bych rád získal pohled na věc jak to provést v rámci jedné tabulky
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

ZAJDAN

  • *****
  • 2 015
    • Zobrazit profil
    • E-mail
Re:PHP - SQL pomocí PDO
« Odpověď #25 kdy: 24. 09. 2015, 09:53:30 »
Vsetko bude fungovat skoro ako u teba, len namiesto horizontalne to bude vertikalne.

díky, to už mi dává pointu....já jsem prostě zvyklý sql tabulku dělat tak, že vertikálně mám sloupce, horizontálně záznamy
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

NooN

Re:PHP - SQL pomocí PDO
« Odpověď #26 kdy: 24. 09. 2015, 09:57:12 »
Len pre vsetko robit stlpce alebo nove trabulky nie je rozumne.

Re:PHP - SQL pomocí PDO
« Odpověď #27 kdy: 24. 09. 2015, 11:13:10 »
Kazdopadne pokud mas dale v praxi podobne veci resit tak popros zamestnavatele at ti skutecne zaplati nejake skoleni kde dostanes tuhle teorii a zakladni ukazky. Protoze tohle je presne ukazaka samouk (= spatne) vs nekdo kdo si nastudoval teorii (a je jedno jestli ve skole nebo od sveho zkusenejsiho kolegy nebo od google "sql normalizace")
Děkuji za možnost editace příspěvku.

ZAJDAN

  • *****
  • 2 015
    • Zobrazit profil
    • E-mail
Re:PHP - SQL pomocí PDO
« Odpověď #28 kdy: 24. 09. 2015, 11:36:20 »
nerad sem dávám fejetony, ale nezbývá mi než dodat:
všechno má svůj čas...ne každý je dokonalý ze startu
hned každého peskovat ať se na to vyprdne, sedne si do kouta a nechá toho dokud nebude školenej není dobrej přístup
takto své děti vychovávat nebudu a jedno jestli dělají domácí úkol/zaměstnání a nebo stavějí draka/hobby

díky všem kteří mi tu pomohli nebo měli snahu
co se týče dalšího vzdělávání, určitě se na to podívám
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.