Autor Zpráva
Darker
Profil
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 *
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 *
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
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 *
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
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 *
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 *
Mimochodem, zamysli se nad tím, jak budeš Krokodýly mazat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0