Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 4. 12. 2010, 16:37:24 · Upravil/a: nethor
Ahoj,
v cyklu přiřazuji do objektu hodnoty, požívám zápis $foto = "foto".$i ; $user_db->$foto = "text"; neexistuje nějaký elegantnější zápis? zkoušel jsem $user_db->foto$i = "text"; $user_db->"foto".$i = "text"; Leč, to nejde. |
||
larryx Profil |
#2 · Zasláno: 4. 12. 2010, 18:54:29
použi pole...
$user_db->$foto[$i]="text"; |
||
Kcko Profil |
#3 · Zasláno: 4. 12. 2010, 19:06:43
nebo nový objekt, ale to co používáš skutečně ne.
|
||
fajzen Profil |
#4 · Zasláno: 5. 12. 2010, 21:11:02
nethor:
takto to funguje: $user_db->{"foto" . $i} = "text"; ale lepšie bude to pole... aj keď nie tak, ako píše larryx, ale $user_db->foto[$i] = "text"; |
||
nethor Profil |
#5 · Zasláno: 5. 12. 2010, 22:50:55
fajzen:
Díky za originální řešení, to mě nenapadlo. (U larryxe to byl asi jen překlep.) Nakonec jsem to přehodil vše do polí. Původně jsem chtěl elegantně vyřešit zápis do databáze, kde jsou sloupce pojmenovány foto0,foto1,... Takhle by to šlo. |
||
DoubleThink Profil * |
#6 · Zasláno: 5. 12. 2010, 23:09:03
nethor:
„Původně jsem chtěl elegantně vyřešit zápis do databáze, kde jsou sloupce pojmenovány foto0,foto1“ Prakticky každá tabulka která používá čísla v názvech sloupců je špatně navržena. |
||
nethor Profil |
#7 · Zasláno: 5. 12. 2010, 23:25:48 · Upravil/a: nethor
DoubleThink:
Tož tedy, jak na to správně? Mám tabulku se z božím, a ke každému zboží může být max 5 foto (do foto1, foto2,... vkládám URL). Řešit to přes propojené tabulky mi připadá jako zbytečná komplikace. CREATE TABLE `zbozi` ( `id` int(11) NOT NULL auto_increment, `id_prodejce` int(11) NOT NULL, `nadpis` text character set utf8 collate utf8_czech_ci, `popis` text character set utf8 collate utf8_czech_ci, `foto0` text character set utf8 collate utf8_czech_ci, `foto1` text character set utf8 collate utf8_czech_ci, `foto2` text character set utf8 collate utf8_czech_ci, `foto3` text character set utf8 collate utf8_czech_ci, `foto4` text character set utf8 collate utf8_czech_ci, `cena_prodejce` int(11) default '0', . ...... . `zobrazit` int(1) NOT NULL default '1', `time_vlozeni` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
||
Keeehi Profil |
#8 · Zasláno: 5. 12. 2010, 23:40:16 · Upravil/a: Keeehi
nethor:
„Řešit to přes propojené tabulky mi připadá jako zbytečná komplikace.“ Není to komplikace ale správné řešení. Datový typ TEXT pro ty sloupce foto0-5 se mi zdá dosti podivný. I sloupce time_vlozeni má divný datový typ. Proč to není TIME nebo DATETIME? |
||
larryx Profil |
#9 · Zasláno: 5. 12. 2010, 23:41:10
ano pomylil som sa, ries tu tabulku tak ze jeden stlpec foto a vnom vsetky linky na fotky oddelene napr. Bodkociarkou ; a pri vypise to rozdel cez explode, druha moznost je dalsia tabulka
|
||
Keeehi Profil |
#10 · Zasláno: 5. 12. 2010, 23:46:07
larryx:
„jeden stlpec foto a vnom vsetky linky na fotky oddelene napr. Bodkociarkou ; a pri vypise to rozdel cez explode“ Také špatné řešení. |
||
nethor Profil |
#11 · Zasláno: 6. 12. 2010, 07:41:37
Keeehi:
„Proč to není TIME nebo DATETIME?“ Protože se mi s tím daleko pépe pracuje. Do sloupce time_vlozeni vkládám time(); Ale možná s tím jen neumím zacházet. Např. jsem nenašel žádnou fci, která by formát 1000-01-01 00:00:00 převedla na integer , který vrací time(); (opačná fce k date();) „Datový typ TEXT pro ty sloupce foto0-5 se mi zdá dosti podivný“ A jaký typ bys použil pro zápis URL? |
||
__construct Profil |
#12 · Zasláno: 6. 12. 2010, 09:02:58 · Upravil/a: __construct
nethor:
DoubleThink narážal na to, že porušuješ tzv. „1. normálnu formu“ larryx ty by si si to mal tiež prečítať než zase začneš niekomu radiť ako v MySQL navrhovať db > jsem nenašel žádnou fci, > která by formát 1000-01-01 00:00:00 převedla na integer , který vrací time(); A čo takto priamo MySQL funkcia UNIX_TIMESTAMP();
„A jaký typ bys použil pro zápis URL?“ Buď VARCHAR alebo keď už potrebuješ ukladať dlhý string tak TINYTEXT … TEXT je moc dlhý - naozaj potrebujše ukladať taký dlhý reťazec?
Už sme ale OT - toto by malo patriť do inej sekcie… |
||
Časová prodleva: 13 let
|
0