Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] [MySQL] Zapytanie z JOIN
Forum PHP.pl > Forum > PHP
kondor
Witajcie,
mam duzy problem z wykonaniem zapytania do bazy danych/sortowaniem wyników.
Mam baze kategorie w ktorej sa wypisane wszystkie kategorie. Czesc z nich to parent, czesc child. Kazda child ma swojego parent przypisanego poprzez parent_id.
Po wykonaniu zapytania z JOIN wyniki sa takie:
[0] parent1- child1
[1] parent1 - child2
[2] parent1 - child3
[3] parent1 - child4
itd.
Chcialbym aby wynikiem bylo:
[0] parent1 - [0] child1 - [1] child2 - [2] child3
[1] parent2 - [0] child1 - [1] child2 - [2] child3
itd
Czy da sie to zrobic? Czy da sie zrobic tak aby te childy zagniezdzaly sie pod "parentem"?
Szukal wszedzie - czy moze da sie to zrobic sortujac array czy jakos inaczej i nie moge znalezc.
Blagam o pomoc bo juz nerwowo nie wytrzymuje smile.gif

pozdrawiam,
Konrad
trucksweb
do selecta dopisz "DISTINCT(tu nazwa kolumny z id parenta)"
zzeus
poczytaj o GROUP_CONCAT()
kondor
Witajcie,

dziekuje za odpowiedzi DISTINCT nie działało - próbowałem już wcześniej.
Tym czego szukałem jest GROUP_CONCAT.

Dziękuje za pomoc:)

A jednak nie do końca jest ok.
GROUP_CONCAT faktycznie je grupuje, ale... mam teraz wszystkie child jako dlugi blob z przecinkami. Oczywiscie moge zrobic explode, ale czy nie ma latwiejszego sposobu.
W tym wypadku musze pobrac przez GROUP_CONCAT id oraz name tych kategorii. Mam je w dwoch roznych zmiennych. Nastepnie kazda przez explode, potem laczenie itd.
Nie ma jakiegos latwiejszego zapytania do bazy?
A moze w ogole nie tedy droga?
Poprzednio mialem po prostu posortowane tak, ze byl sobie parent, jego dzieci mialy kolejne itd a potem znow parent i dzieci z kolejnymi id, ale w takim wypadku nie moglem dodawac kolejnych, nowych kategorii.
Gdyby ktos mogl mi pomoc bylbym bardzo wdzieczny smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.