🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
2 messages
2 total messages Started by Misio Mon, 23 Mar 2020 07:50
mądrzejsze rozwiązanie do wyciągania danych z bazy
#232528
Author: Misio
Date: Mon, 23 Mar 2020 07:50
20 lines
1526 bytes
Witam

Napisałem jakiś czas temu aplikaje PHP, ale szukam bardziej mądrego 
rozwiązania pewnego problemu. Chodzi o to, że mamy tabelę z produktami 
oraz tabelkę z kategoriami tych produktów

kategoria_produkt
id_produktu|id_kategorii

Żeby wyciągnąć dane z kategorii wyciągam z bazy te produkty, które 
należą do kategorii - przygotowuje listę ich ID i potem wysyłam 
zapytanie typu

SELECT FROM produkty WHERE id IN( PRZYGOTOWANA LISTA ID )

Podejrzewam, że moje rozwiązanie nie jest najlepse i najwydajniejsze i 
przy dużej ilości id w takim zapytaniu wygląda to słabo. Pod jakim 
hasłem szukać alternatywnego właściwego rozwiązania?

Pozdrawiam
Re: mądrzejsze rozwiązanie do wyciągania danych z bazy
#232529
Author: Roman Tyczka
Date: Mon, 23 Mar 2020 08:28
30 lines
1907 bytes
On Mon, 23 Mar 2020 08:50:18 +0100, Misio wrote:

> Witam
> 
> Napisałem jakiś czas temu aplikaje PHP, ale szukam bardziej mądrego 
> rozwiązania pewnego problemu. Chodzi o to, że mamy tabelę z produktami 
> oraz tabelkę z kategoriami tych produktów
> 
> kategoria_produkt
> id_produktu|id_kategorii
> 
> Żeby wyciągnąć dane z kategorii wyciągam z bazy te produkty, które 
> należą do kategorii - przygotowuje listę ich ID i potem wysyłam 
> zapytanie typu
> 
> SELECT FROM produkty WHERE id IN( PRZYGOTOWANA LISTA ID )
> 
> Podejrzewam, że moje rozwiązanie nie jest najlepse i najwydajniejsze i 
> przy dużej ilości id w takim zapytaniu wygląda to słabo. Pod jakim 
> hasłem szukać alternatywnego właściwego rozwiązania?
> 
> Pozdrawiam

select p.* from kategoria_produkty kp
left join produkty p on p.id = kp.id_produktu
where kp.id_kategorii = :id_kategorii

-- 
pozdrawiam
Roman Tyczka
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads