Autor | Zpráva | ||
---|---|---|---|
Kája Profil * |
#1 · Zasláno: 3. 9. 2008, 12:16:48
Zdrawim,
mám následující problém. Mám 2 tabulky jednu, kde jsou uložený data o uživatelích a druhou, která slouží pro ukládání článků. A teď když nechám vypsat článek, tak se mi celej vypíše bez problému až na jeden. A tím je název autora. Ten je totiž v tabulce users a v tabulce clanky mám jenom zapsaný id (v tabulce clanky se ten sloupec jmenuje zalozil) z tabulky users. Zkoušel jsem to všemožně spojit ale furt se mi to nějak nedaří. Zkoušel jsem udělat jakoby 2x select ale tudy cesta asi nepovede. Poslední verze která docela fungovala ale nevypisovala jméno vypadá takto $Vyber=mysql_query("SELECT clanky.* FROM clanky WHERE clanky.id='$id' ORDER BY cas DESC"); $Vypis=mysql_fetch_array($Vyber); $query=mysql_query("SELECT clanky.id,clanky.*,users.* FROM clanky LEFT JOIN users ON users.id=zc_clanky.zalozil"); $vysledek=mysql_fetch_array($query); já vim je to prasecký, ale opravdu nevim jak to spojit aby to fachalo tak jak má =/ Věděl by někdo jak na to? Díky moc |
||
nightfish Profil |
#2 · Zasláno: 3. 9. 2008, 12:22:00
SELECT clanky.*, users.jmenouzivatele FROM clanky LEFT JOIN users ON clanky.zalozil = users.id |
||
BetaCam Profil |
#3 · Zasláno: 3. 9. 2008, 12:25:18
SELECT clanky.*, users.* FROM clanky LEFT JOIN users ON clanky.zalozil = users.id WHERE clanky.id = $id ORDER BY clanky.cas DESC |
||
trinitrochleba Profil * |
#4 · Zasláno: 3. 9. 2008, 12:36:31
BetaCam: Já se jen zeptám na ten styl Vašeho zápisu toho sql dotazu. Je nějaký důvod, proč to zapisovat takhle do mnoha řádků? Možná budete argumentovat čitelností, což je asi subjektivní názor, mně to takto přijde mnohem méně čitelné, ale je to asi věc zvyku. Je k tomu nějaký další důvod?
|
||
Kája Profil * |
#5 · Zasláno: 3. 9. 2008, 12:36:51
Super díky moc už to fachá =) při mých pokusech sem nebyl daleko =) nj holt se budu muset ještě něco naučit..... ještě jednou díky
|
||
BetaCam Profil |
#6 · Zasláno: 3. 9. 2008, 13:07:57
trinitrochleba
Důvod je jediný čitelnost. Pokud se jedná o dotaz typu : SELECT a, b, c, d, e, f FROM table WHERE a = 10 tak to klidně napíšu do řádky, ale pokud se jedná o dotaz který spojuje X tabulek je v něm X subdotazů atd. tak ho rozepíšu tak jak sem to zapsal výše. Při složitých dotazech se v tom při klasickém zápisu na řádku nedá vyznat. Je to asi jako kdyz někdo napíše dotaz typu : SELECT * FROM clanky zato bych mu urazil obě ruce. Je super, že si ušetřil práci s psaním, ale do přehlednosti to má opravdu daleko. |
||
Časová prodleva: 16 let
|
0