Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Sortowanie danych po wynikach z innej tabeli
andrzej_
post 18.01.2012, 16:49:32
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 11.06.2010

Ostrzeżenie: (0%)
-----


Witam, oczywiście użyłem wyszukiwarki, jednak ciężko się dostosować z własną strukturą bazy do cudzych odpowiedzi.

Co próbuje zrobić, to sortowanie wyników po danych z innej tabeli, struktura:

tabela1 [zdjecie] : id | nazwa | galeria | ocena
tabela2 [galeria] : id | nazwa

Każde zdjęcie jest przypisane do galerii przez jej numer ID, ja chciałbym zrobić sortowanie wszystkich galerii poprzez zsumowanie ocen zdjęć które są przypisane do niej. Domyślam się, że można w prosty sposób zrobić przez zapytanie SQL, jednak nie wiem jak je skonstruować, ze swoich pomysłów mogę to zrobić ewentualnie poprzez wyciągniecie wszystkiego do tablic, a później zsumowanie i posortowanie, lub dodaniu pola 'pełna ocena' w tabela2 [galeria] i przy ocenie działać na obu, ale jeżeli można zaoszczędzić na miejscu, to czemu nie. Proszę o podpowiedź albo link do funkcji/tutoriala, który może mi pomóc.

Dziękuje z góry i pozdrawiam!
Andrzej
Go to the top of the page
+Quote Post
nospor
post 18.01.2012, 16:51:59
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




group by oraz order by sum(...)


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
andrzej_
post 18.01.2012, 17:47:09
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 11.06.2010

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 18.01.2012, 16:51:59 ) *
group by oraz order by sum(...)


Dzięki za szybką odpowiedź, przeczytałem instrukcje funkcji, i wyszło mi coś takiego:
  1. SELECT SUM(ocena) AS asd FROM zdjecie, galeria WHERE zdjecie.galeria = galeria.id GROUP BY asd


Jednak, jedyna rzecz, którą zapytanie robi, to sumowanie wszystkich ocen jako "asd". Domyślam się, że kolejność w zapytaniu pokręciłem, czy coś więcej?
Go to the top of the page
+Quote Post
nospor
post 19.01.2012, 08:13:19
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




group by masz robic po galeria.id


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
andrzej_
post 19.01.2012, 13:39:25
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 11.06.2010

Ostrzeżenie: (0%)
-----


Super, działa. Faktycznie, pomyliłem się i chciałem to sortować przez asd, mała zmianka i wszystko śmiga, dziękuje serdecznie nospor!

pytanie bonus: przy pobieraniu przez sql danych z dwóch różnych tabel, w których są takie same nazwy pól [np. nazwa w tym wypadku], czy jest opcja aby zrobić np. SELECT * FROM galeria, zdjecia.ocena, lub coś w tym stylu, wiem, że mogę wypisać wszystkie pola z jeden tabeli po przecinku, ale to tez chyba można skrócić, dane dalej są w pętli while, przez mysql_fetch_assoc ($zmienna[nazwa]), i trochę kolidują ze sobą.

Ten post edytował andrzej_ 19.01.2012, 13:52:23
Go to the top of the page
+Quote Post
nospor
post 19.01.2012, 14:00:27
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. SELECT tabela1.*, tabela2.nazwa AS innanazwa.....


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
andrzej_
post 19.01.2012, 14:06:14
Post #7





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 11.06.2010

Ostrzeżenie: (0%)
-----


I dziękuje ponownie, widząc swoje braki wiedzy, wracam do manuala.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 18:57