Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Trochę nietypowe sortowanie bazy
Forum PHP.pl > Forum > Przedszkole
Lopmer
Mam problem, ponieważ chciałbym posortować bazę opisanym niżej sposobem ale nie za bardzo wiem jak się za to zabrać. Bardzo proszę o jakiekolwiek wskazówki.

Załóżmy, że tak wygląda próbka bazy:


Kod
1 kolumna (domena)                    2 kolumna (katalogi)             3 kolumna (wartość1)        4 kolumna (wartość2)

http://costam1.pl                /katalog1/katalog2/                        2                                1
http://costam1.pl                /katalog1/katalog2/strona1.html            5                                2
http://costam1.pl                /katalog1/katalog2/strona2.html            3                                3




Chciałbym uzyskać taki efekt, że jeżeli napotkamy na takie przypadki to byłyby one liczone jako jeden z sumą wszystkich wartości, czyli zwrócony wynik wyglądałby następująco:

Kod
1 kolumna (domena)                    2 kolumna (katalogi)        3 kolumna (wartość1)        4 kolumna (wartość2)

http://costam1.pl                        /katalog1/katalog2/            10                                6


Wynikiem tego zabiegu miałaby być baza oczyszczona z tego typu powtórek.

Czyli byłoby to grupowanie z dokładnością do pierwszego slasha od końca. Z tego względu, że różnego rodzaju przypadków o różnym stopniu zagłębienia w katalogi mamy mnóstwo, więc tak naprawdę tylko ten ostatni slash może być punktem wyjścia.

http://costam.pl/katalog1/katalog2/
nie byłby już tym samym, co
http://costam.pl/katalog1/

Z góry dzięki i pozdrawiam.
cojack
Wątpię by ktoś to napisał od tak o sobie dla hecy, to jest trochę skomplikowana procedura (pl/sql) + na pewno triger ktory działa na INSERT, ale to nie będzie proste... Szczerzę to sam nie wiem jak by coś takiego miało wyglądać.
Lopmer
To może chociaż jakieś wskazówki, hasła po których można by szukać.
thek
Ja raczej jestem ciekaw czego innego... Co miałaby zwrócić baza w przypadku innej domeny lub o większej różnicy w stopniu zagłębienia.
Innymi słowy co miałoby być wynikiem po dodaniu do tabeli rekordów:
Kod
http://costam2.pl                /katalog1/katalog2/                        2                                1

lub
Kod
http://costam1.pl                /katalog1/                        2                                1

Bo myślę, że w przypadku pierwszym pojawiłby się w wyniku nowy wiersz (zgaduję) i tutaj GROUP BY kolumna1 to by załatwiało.
Z kolei w przypadku 2 nie mam pojęcia... Część wspólna tych wszystkich ścieżek? Ale także tylko zgaduję jak Ty to widzisz.
Bo pozostałe 2 to banał. Zwykłe sum(kolumna3) i sum(kolumna4). Dwie pierwsze natomiast nie wyjaśniłeś co miały by zwracać i czy tylko 1 rekord czy może więcej. A jesli więcej to w jakim formacie byłaby wartość tej kolumny?
Lopmer
thek ->

Przypadek1: Skoro domena jest inna -> po prostu nowy wiersz.

Przypadek 2: Nie wiem czy dobrze Cie zrozumiałem, ale wg mnie tak:

http://costam1.pl/katalog1/ (stopien zagłębienia = 1) bedzie czymś kompletnie różnym od http://costam1.pl/katalog1/katalog2/ (stopien zaglebienia = 2) i traktujemy je jako odmienne i tutaj nie robimy nic - ten wiersz nie podlega sortowaniu jeśli ma inny stopień zagłębienia. To będą 2 różne wiersze w tabeli.

Jeśli chodzi o przykładowy przypadek który napisałem w 1 poście to zwrócony miałby zostać jeden rekord.
cojack
Lopmer zapraszam na strone depesz.com, kolega zna się na tych rzeczach, może jak się z nim dogadasz to Ci napisze coś takiego.
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.