Autor | Zpráva | ||
---|---|---|---|
Darker Profil |
#1 · Zasláno: 18. 11. 2011, 20:57:55
Jde mi přesně o to, co chce člověk na této stránce: http://stackoverflow.com/questions/5307164/execute-insert-if-table-is-empty
Nemám ale ponětí jak řešení interpretovat pro například takovýto kód, ani co přesně znamená druhý řadek řešení. Vysvětlil by mi to prosím někdo? Můj kód: INSERT INTO kategorie ( nazev, sub ) VALUES ('Plazi','Krokodýli,Šupinatí'), ('Ptáci','Běžci,Letci'), ('Savci','Placentálové,Vačnatci') |
||
okolojdouci Profil * |
#2 · Zasláno: 18. 11. 2011, 21:03:39
Tam uvedený postup neznám, ale šel bych cestou nejmenšího odporu. SELECT COUNT, pak phpkovský if a v něm ten INSERT. Profíka i pár pikosekund zdržuje, ale já jsem amatér, tak si to můžu dovolit.
|
||
okolojdouci Profil * |
#3 · Zasláno: 18. 11. 2011, 21:09:50
Jen pozor na strukturu databáze. Z těch čárek nemám dobrý pocit. Jestli to myslíš tak, jak to vypadá, udělej si pro každou z úrovní té hierarchie exra tabulku, kde budou ID, názvy položek a něco jako IDnadrazeneskupiny. Trochu práce ti to přidá a spoustu pozdější práce ušetří.
|
||
Darker Profil |
#4 · Zasláno: 18. 11. 2011, 21:49:55
okolojdouci:
Vysvětlil bys mi prosím jak se pracuje s tím select count? Je to rychlejší než kdybych dal SELECT * a pak mysql_num_rows (což mi přišlo neefektivní), nebo je to fuk? „Jestli to myslíš tak, jak to vypadá“ Myslím to tak že pak udělám explode a bude vymalováno. Jednotlivé otázky v kategorii pak budou mít podoný sloupec kde budou čárkou odděleny indexy původního pole. Nemám moc velkou praxi s mysql takže je mi milejší operovat v PHP. |
||
okolojdouci Profil * |
#5 · Zasláno: 18. 11. 2011, 22:01:42
Darker:
„Je to rychlejší než kdybych dal SELECT * a pak mysql_num_rows“ $hledej2 = mysql_result(mysql_query("SELECT COUNT(*) FROM table"),0); Ano, je. „Myslím to tak že pak udělám explode a bude vymalováno.“ Záleží na tom, jak bude ta aplikace postavená. V jistých velmi řídkých případech může být ten postup efektivnější, ale už touhle větou se dopouštím zločinu. Správná konstrukce je: rady: ID, nazev, IDtridy tridy: ID, nazev, IDpodkmene podkmeny: ID, nazev, IDkmene atd. Při dvaceti položkách klidně exploduj, při stovkách a tisících už bys tvrdě narazil. Pokud nemáš naprostou jistotu, že ti ty počty položek neporostou, doporučuji to neexplozivní řešení. |
||
Darker Profil |
#6 · Zasláno: 19. 11. 2011, 10:11:55
okolojdouci:
„Pokud nemáš naprostou jistotu“ Mám naprostou jistotu že jich přes dvacet nebude. Celý systém je stvořený tak, že pro dvacet a víc už by ztrácel přehlednost. Nejedná se o databázi živočichů ale testovacích otázek z dané látky. :) |
||
okolojdouci Profil * |
#7 · Zasláno: 19. 11. 2011, 11:21:12
Darker:
Ušetříš něco času a nezískáš zkušenost s řešením, které dřív nebo později, třeba v jiných projektech, stejně budeš potřebovat. Ale je to tvoje volba. |
||
okolojdouci Profil * |
#8 · Zasláno: 19. 11. 2011, 11:26:50
Mimochodem, zamysli se nad tím, jak budeš Krokodýly mazat.
|
||
Časová prodleva: 13 let
|
0