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'];
}
problém mám s tým, že pokiaľ to spojím tak z tej druhej tabuľky dostanem len 1 hodnotu, nie všetky
juriad
Profil
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'];
}
ide mi len o to aby to bolo čo najviac optimalizované..(nech zbytočne nechodím do db 2x)
juriad
Profil
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
juriad:
dobre, ďakujem za pomoc

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: