Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 18.07.2010 Ostrzeżenie: (0%)
|
Witam (IMG:style_emoticons/default/smile.gif)
Postanowiłem pogłębić nieco moją wiedzę w tej dziedzinie i zabrać się za coś odrobinkę trudniejszego. Zabawa szła dobrze do pewnego momentu, już wyjaśniam o co mi chodzi. Mam taką o to bazę danych (a raczej jej potrzebny tutaj fragment): (IMG:http://members.multimania.co.uk/patriks007/forumPHP/widok.jpg) Stworzyłem sobie takie oto zapytanie: (IMG:http://members.multimania.co.uk/patriks007/forumPHP/zapytanie.jpg) Które daje taki wynik w phpadminie: (IMG:http://members.multimania.co.uk/patriks007/forumPHP/wynik.jpg) Moje pytanie polega na tym, jak "unormalnić" ten wynik zapytania ? Normalną sprawą jest, że funkcja w php mysqli_fetch_assoc listuje ten wynik w taki sam sposób j/w co utrudnia mi strasznie zabawę bo nie mam pomysłu jak to przefiltrować w PHP. A może nie wpadłem na pomysł i da się to sprytnie poprawić w samym zapytaniu zaoszczędzając sobie sporo dłubania w PHP ? Aby była całkowita jasność mojej wizji podam przykład wyniku jaki właśnie mnie interesuje: (IMG:http://members.multimania.co.uk/patriks007/forumPHP/marzenie.jpg) Bawiłem się troszeczkę GROUP_CONCAT ale moimi pomysłami realizuję powyższy plan co najwyżej połowicznie (IMG:style_emoticons/default/worriedsmiley.gif) Proszę o rady/pomoc (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%)
|
Wiesz co... nie bardzo chce mi się przepisywać to co wkleiłeś jako obrazek, więc dam przykład na prostszej strukturze.
Wyobraź sobie że są dwie tabele. 1. tabela filmy id, tytul -------------------- 1, Matrix, 2, Matrix Reloaded 3, Matrix Revolutions 2. tabela ludzie id, filmId, imieNazwisko, rola 1,1, Andy Wachowski, reżyser 2,2, Andy Wachowski, reżyser 3,3, Andy Wachowski, reżyser 4,1, Keanu Reeves, aktor 5,2, Keanu Reeves, aktor 6,3, Keanu Reeves, aktor 7,1, Carrie-Anne Moss, aktor 8,2, Carrie-Anne Moss, aktor 9,3, Carrie-Anne Moss, aktor troche niezgodnie z zasadami normalizacji ale to tylko przyklad Kod SELECT
f.id, f.tytul GROUP_CONCAT(r.imieNazwisko) AS rezyseria, GROUP_CONCAT(a.imieNazwisko) AS aktorzy FROM filmy AS f INNER JOIN (SELECT filmId, imieNazwisko FROM ludzie WHERE rola = 'reżyser') AS r ON f.id = r.filmId INNER JOIN (SELECT filmId, imieNazwisko FROM ludzie WHERE rola = 'aktor') AS a ON f.id = a.filmId GROUP BY f.id |
|
|
|
patrix007 Stworzenie specyficznego zapytania do bazy danych lub filtrowanie w php 18.07.2010, 20:19:36
Mchl [edit]
Za szybko odpowiedziałem, za wolno przeczyt... 18.07.2010, 20:22:45
patrix007 Najlepsze zapytanie jakie wymyśliłem wygląda nastę... 18.07.2010, 20:31:40
Mchl Musisz tabelę czlowiek_filmu dołączyć jeszcze raz ... 18.07.2010, 21:10:34
patrix007 No i ten moment właśnie nie bardzo rozumiem,
skop... 18.07.2010, 21:58:05
patrix007 Poczytałem chwilkę o JOIN i stworzyłem takie oto z... 19.07.2010, 00:20:12
Mchl KodGROUP_CONCAT( DISTINCT CONCAT(a.imie,... 19.07.2010, 08:08:43
patrix007 Teraz jest perfekcyjnie ;-)
Teraz mogę się bawić d... 20.07.2010, 13:57:16
Mchl Spróbuj
KodON a.id = film_b.idfilm 20.07.2010, 15:10:53
patrix007 Błąd:
Kod#1054 - Unknown column 'film_b.idfil... 20.07.2010, 15:18:25
Mchl Dziwna sprawa, bo to przecież pierwsza kolumna w t... 20.07.2010, 16:55:17
patrix007 Mchl, oczywiście miałeś rację, jednak (wbrew logic... 20.07.2010, 16:58:46
Mchl No tak. Na co dzień nie używam przecinka tylko INN... 20.07.2010, 17:14:07
patrix007 Kolejny problem mam.
Tym razem chodzi o to, że ja... 1.08.2010, 13:57:01
everth Jak masz tak skomplikowane zapytania to zapoznaj s... 1.08.2010, 14:37:37 ![]() ![]() |
|
Aktualny czas: 9.08.2026 - 01:25 |