Spojení tabulek u table selection

- kejlicz
- Člen | 201
Ahoj všem.
Nějak jsem se ztratil při použití table selection a marně hledám jak na to.
Teď používám v URL parametr pro výběr kategorie zboží ve formě integer.
Data tahám takhle
return $this->db->table("items")->where("category", $category);
Chci to předělat, že funkce nebude v $category dostávat id kategorie, ale název kategorie v URL formátu.
Myslel jsem si nějak takto, ale nedaří se mi to dostat do funkční formy (No reference found for $items->categories).
return $this->db->table("items")->select("items.*, categories.slug")->where("categories.slug", $category);
V tabulce items.category mám cizí klíč na categories(id)
Díky moc za radu.
Editoval kejlicz (3. 12. 2013 14:09)

- kejlicz
- Člen | 201
vvoody napsal(a):
Názov kategórie si získaj dodatočne až v šablóne, keď budeš nad tým Selection iterovať. Nemá zmysel ťahať dáta z viacerých tabuliek jedným query.
Nějak nechápu. Teď nevím jestli mi něco neuniká, nebo jsem dobře nepopsal, co potřebuju udělat, protože já pro ten dotaz data z 2 tabulek myslím potřebuji.
Mám prostě tabulku
items se sloupci např. id, name(varchar), category(int)
a tabulku
categories se sloupci např. id, name(varchar), slug(varchar – URL formát
např. „tricka“) …
A já potřebuji vytáhnout z tabulky items všechno, co má třeba URL tvar kategorie „tricka“. Šlo by to, kdyby si předem zjistil, jaký categories.id mají „tricka“ a pak to z items tahal podle idčka kategorie, které je ve sloupci category, ale mě teď zajímá, jak to sestavit v jednom dotazu.
Editoval kejlicz (3. 12. 2013 14:44)

- David Matějka
- Moderator | 6445
pro „to one“ neni rozhodujici nazev cilove tabulky, ale nazev spojovaciho sloupecku, nazev cilove tabulky je rozhodujici pro „to many“ smer
melo by to tedy byt category.slug, problem je, ze tvuj sloupecek
se primo jmenuje category a ne category_id, takze se to nepovede. jako hotfix by
melo fungovat categor.slug. (ano, opravdu bez y, :) ) lepsi ale
bude pojmenovavat sloupecky s cizim klicem ve stylu category_id apod. (+
doporucuju pojmenovavat tabulky v jednotnem cisle)
a je zbytecne ten slug selectovat

- kejlicz
- Člen | 201
matej21 napsal(a):
pro „to one“ neni rozhodujici nazev cilove tabulky, ale nazev spojovaciho sloupecku, nazev cilove tabulky je rozhodujici pro „to many“ smer
melo by to tedy byt
category.slug, problem je, ze tvuj sloupecek se primo jmenuje category a ne category_id, takze se to nepovede. jako hotfix by melo fungovatcategor.slug. (ano, opravdu bez y, :) ) lepsi ale bude pojmenovavat sloupecky s cizim klicem ve stylu category_id apod. (+ doporucuju pojmenovavat tabulky v jednotnem cisle)a je zbytecne ten slug selectovat
Díky. Pomohlo a už to dělá konečně to co jsem zamýšlel :-)