![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Na wstępie dodam że szukałem odpowiedzi/podpowiedzi na mój problem w google ale nic z tego. Albo za banalny problem albo źle frmułuję zapytanie. Robie sobie prostą aplikacje serwisu filmowego i mam taki problem. Chcę dodać trzy zmienne w których siędzą tytuly filmów. Zawrtość tych zmiennych jest pobierana z bazy danych (taka zmienna ma chyba pstać tablicy jednowymiarowej jeśli się nie mylę). Wszystko fajnie zmienne z tytułąmi filmów są dodawane ale chciałbym wykluczyć w nich dublowanie się nazw filmów. Dla przykładu: ZmiennaX zawiera filmy Jaś Fasola, Faceci w czerni, Informator, Terminator a zmiennaY zawiera Kil BIl, Ojciec Chrzestny, Informator, Zielona mila. W zmiennej wynikowej chciałbym otrzymać wszytkie tytuły zmiennejX i zmiennejY ale bez powtarzania dwa razy pozycji 'Informator'. Oto część kodu:
Poniżej efekt działania kodu w przeglądarce: (IMG:http://s4.ifotos.pl/mini/wynik-skr_xswwwpr.JPG) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Za pomoca SELECT DISTINCT tytul FROM filmy WHERE $ak3 = $aktorek3 ORDER BY Ocena_filmu DESC nie moge bo takich zapytań do bazy mam 3 a wartości o które pytam w SELECTcie są generowane losowo więc może się zdażyć że 2 albo 3 pytania beda dawały w wyniku te same rekordy. Chodzi mi o to aby likwidacja powtórzeń odbywała się w momęcie gdy wyniki z zapytań są już załadowane do zmiennej i mają zostać wyświetlone. Myśle żeby z tej finalnej zmiennej zrobić tablice dwuwymiarową i wpakować ją w specjalnie do tego celu przeznaczoną tabelke w bazie danych. Ale wydaje mi się że to zbytecznie obciążanie serwera mysql tworząc kolejne zapytania. Może da się to jakoś prosciej, może istenieje jakaś funkcja php która pszeszukuje łąńcuchy tekstowe w zmiennej i likwiduje redundacje (IMG:style_emoticons/default/questionmark.gif)
Ten post edytował remontt 30.01.2013, 22:32:30 |
|
|
-Gość- |
![]()
Post
#4
|
Goście ![]() |
O ile dobrze zrozumiałem prawdopodobnie wystarczy zastosować in_array, ale mogą się zdarzyć różne filmy o takich samych tytułach, nie wiem czy chcesz je wyświetlać czy nie. Inny sposób, to zmienić sposób przechowywania danych w tablicy wynikowej, jako indeks zastosować identyfikator filmu o ile masz identyfikatory filmów, wtedy można zastosować isset
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Za pomoca SELECT DISTINCT tytul FROM filmy WHERE $ak3 = $aktorek3 ORDER BY Ocena_filmu DESC nie moge bo takich zapytań do bazy mam 3 a wartości o które pytam w SELECTcie są generowane losowo więc może się zdażyć że 2 albo 3 pytania beda dawały w wyniku te same rekordy. Chodzi mi o to aby likwidacja powtórzeń odbywała się w momęcie gdy wyniki z zapytań są już załadowane do zmiennej i mają zostać wyświetlone. Myśle żeby z tej finalnej zmiennej zrobić tablice dwuwymiarową i wpakować ją w specjalnie do tego celu przeznaczoną tabelke w bazie danych. Ale wydaje mi się że to zbytecznie obciążanie serwera mysql tworząc kolejne zapytania. Może da się to jakoś prosciej, może istenieje jakaś funkcja php która pszeszukuje łąńcuchy tekstowe w zmiennej i likwiduje redundacje (IMG:style_emoticons/default/questionmark.gif) Coś mi się wydaję ze chyba słabo masz baze zaprojektowaną albo słabo kombinujesz z aplikacją poza tym dalej mozesz zrobic distinct 3 zapytania?
I nie przenoś takiego ciężaru obróki na php Wyobraź sobie ze masz 200 000 rekordów w wyniku a w tym 10 unikalnych tytułów albo moze i 199 999 uników.. no czysty strzał w stopę bo i tak przeglądasz wszystko i marnujesz serwer. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 30.09.2025 - 10:02 |