Codeigniter 4 - reduciranje liste iz tablice

Iskreno ne znam kako napraviti iz ove tablice da mi izlista samo zadnje posuđene stvari tj. da krati prve posuđene sa vraćenim i da ostavi ove u crvenom (4 i 6) samo.

Novi sam u CI4.

tablica

Probaj…

SELECT t.*
FROM tablica t
WHERE CAST(t.id AS VARCHAR(10)) + ‘-’ + CAST(t.category_id AS VARCHAR(10)) IN (
SELECT CAST(category_id AS CHAR(10)) + CAST(max(id) AS CHAR(10))
from tablica
group by category_id)
AND t.poruka = ‘posuđeno’

SELECT * FROM table WHERE poruka = ‘posuđeno’ ORDER BY id DESC LIMIT 2;
Ovo ce ti vracati zadnje 2 posudjene stvari…

Mogao si isto tako napisat “select * from table where id=4 or id=6”. Isto bi vratilo zadnje dvije posuđene, al gdje je logika zadatka da krati posuđeno sa vraćenim ? :wink:

1 Like

Ovo nije to, tako da nula bodova…

Inače probao sam sa array_diff ali onda mi skrati sve.

Tražim dalje… Naći ću već neko rješenje.

Moram još probati prijedlog kolega trnaca…

Mislim da je problem utoliko interesantniji jer je šeprtljava struktura tablice. Filtriranje po tekstualnom polju? Category_id je pretpostavljam identifikacijski broj za svaki artikl?

Prvi savjet je da mudrije složiš tablicu tj. tablice, a ako želiš quick fix, pretpostavljam da tražiš ovo:

SELECT *
FROM test as a
WHERE a.poruka = 'posuđeno'
AND 
NOT EXISTS
(SELECT b.id FROM test as b 
	WHERE b.id > a.id
	AND b.category_id = a.category_id 
	AND b.poruka = 'vraćeno');

Logički ispisano:

Označi sve iz tablice (naziv tablice)
tamo gdje je poruka ‘posuđeno’,
a da pritom ne postoji upis koji ima:

  1. veći id (znači da tražimo samo noviji upis)
  2. isti identifikacijski broj artikla
  3. poruku da je vraćeno

To ti vraća artikle koji imaju poruku da su posuđeni, a nakon te poruke nemaju novu poruku da su vraćeni. Limit na kraju staviš 2 ili koliko hoćeš.

1 Like

Jep, trebala bi biti takva tablica gdje ima ID od svake posudbe. Pa onda iz svaki posudba_ID moze kačit tko, što, kada, zašto …jel vraćeno ili nije…itd…itd.

Slažem se, struktura tablica nije dobra. Ovo je “prometna” tablica, treba postojati i tablica “stanja” iz koje se jednostavnim upitom mogu dobiti posuđene stvari.

Upit koji sam predložio je najbolje šta sam smislio na temelju trenutne strukture tablice. I baš me zanima jel’ radi :slight_smile:

Šta je CodeIgniter još živ? I to v4??

Hvala svima na odgovorima, trenutno sam stavio na čekanje taj problem.

@ajme: a kaj fali CodeIgniteru?

Ne znam, i ja sam iznenađen šta je taj projekt još živ.

Ali da ti odgovorim na pitanje, vjerojatno puno toga u odnosu na Laravel.