Autor | Zpráva | ||
---|---|---|---|
final Profil |
Zdravím,
dajú sa tieto 2 selecty nahradiť jedným? $result = dibi::query("select * from tabulka where id='$id'); $row = $result->fetch(); $result2 = dibi::query("select * from tabulka2 where id=".$row['id']); foreach ($result2 as $row2) { echo $row2['title']; } |
||
juriad Profil |
#2 · Zasláno: 22. 6. 2013, 12:08:17
Každý dotaz je do jiné tabulky a hledá se podle jiného id; nenapadá mě smysluplný důvod vůbec se to snažit zapsat jedním dotazem.
Zkus popsat, čeho tím chceš dosáhnout a použij jiné názvy tabulek, takové které budou dávat smysl. |
||
final Profil |
príklad:
2 tabuľky: autori, články #autori id_autor, meno #články id_autor, názov_článku $id = $_GET['id']; $result = dibi::query("select meno from autori where id_autor='$id'); $row = $result->fetch(); echo "názov autora".$row['meno']; echo "autorove články:"; $result2 = dibi::query("select názov_článku from články where id_autor=".$id); foreach ($result2 as $row2) { echo $row2['názov_článku']; } |
||
juriad Profil |
#4 · Zasláno: 22. 6. 2013, 12:38:25
SELECT clanky.*, autori.meno FROM clanky JOIN autori ON autori.id_autor = clanky.id_autor Ale je na zvážení, jestli je lepší se dvakrát dotázat a vytáhnout tak z databáze minimální množství dat, nebo se dotázat jednou a přenášet jméno autora zbytečně mnohokrát. Porovnej: Větší velikost přenášených dat (kvůli duplicitě jména) + režie na join (dotaz už není triviální) oproti latenci dotazu (musí se provést o jeden víc) Podle mě je lepší se dotázat dvakrát, je to přehlednější a dokud nenaměříš, že kvůli tomu je stránka pomalá, nemá smysl to optimalizovat. |
||
final Profil |
#5 · Zasláno: 22. 6. 2013, 12:42:59
juriad:
dobre, ďakujem za pomoc |
||
Časová prodleva: 11 let
|
0