Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Stworzenie specyficznego zapytania do bazy danych lub filtrowanie w php, Zniwelowanie powielania się danych w wyniku (1 wiersz = 1 pozycja)
patrix007
post
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)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
patrix007
post
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 18.07.2010

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


Teraz jest perfekcyjnie ;-)
Teraz mogę się bawić dalej (IMG:style_emoticons/default/czarodziej.gif)

To jeszcze raz ja, po dodaniu dwóch kolejnych filmów wyszło na jaw, że jednak z moim JOIN jest coś nie tak.
Po zastosowaniu j/w zapytania przy 5 filmach w bazie mam taki oto wynik:

(IMG:http://members.multimania.co.uk/patriks007/forumPHP/oj1.jpg)

Wpisy w samej bazie są ok ponieważ jak sobie wyłuskam to zapytanie z tego JOIN i dodatkowo pogrupuję to jest wszystko ok...

Wyłuskane zapytanie z JOIN, dodane grupowanie:
Kod
                SELECT
                        film_a.idfilm 'film_id',
                        GROUP_CONCAT( DISTINCT CONCAT(czlowiek_filmu_a.nazwisko,' ',czlowiek_filmu_a.imie)) 'imieNazwisko'
        
                FROM
                        film AS film_a,
                        rola AS rola_a,
                        czlowiek_filmu AS czlowiek_filmu_a,
                        czlowiek_filmu_do_film AS czlowiek_filmu_do_film_a
        
                WHERE    
                        rola_a.rola = 'aktor' AND
                        czlowiek_filmu_do_film_a.czlowiek_filmu_idczlowiek_filmu = czlowiek_filmu_a.idczlowiek_filmu AND
                        czlowiek_filmu_do_film_a.film_idfilm = film_a.idfilm AND
                        czlowiek_filmu_do_film_a.rola_idrola = rola_a.idrola GROUP BY film_id


Wynik tego zapytania jest następujący:

(IMG:http://members.multimania.co.uk/patriks007/forumPHP/oj2.jpg)

W pierwszych trzech filmach mam naturalnie tych samych aktorów i jest prawidłowo bo tak mam w bazie, kolejne dwa filmy są inne i mają innych aktorów co też sie zgadza z wpisami w bazie.


Po wyniku tego zapytania sądzę, że zepsułem coś przy
Kod
ON a.id = id



Jednak co bym nie pokombinował to mi nie wychodzi (IMG:style_emoticons/default/sadsmiley02.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.08.2026 - 01:25