![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 14.02.2017 Ostrzeżenie: (0%) ![]() ![]() |
Dzień dobry, z góry przepraszam jeśli coś zrobiłam nie tak jak powinnam, ale to pierwszy raz kiedy korzystam z forum.
Mój problem wygląda następująco. Mam bazę w której jest kilka tabel. Przechowują one dane z normalnej tabelki gdzie są wiersze i kolumny. Udało mi się napisać zapytanie, które łączy tabele, które są w bazie. W phpmyadmin po wpisaniu kodu sql wydaje mi się,że wygląda wszystko tak jak powinno. Teraz muszę wyświetlić to co jest w bazie na stronie w formie tabelki. I tu pojawia się mój problem, bo nie umiem sobie z tym poradzić. Każda nazwa obiektu i atrybutu powinna pojawić się tylko raz. I każda para obiekt atrybut powinna mieć przypisaną do siebie wartość. Ogólnie schematycznie tabelka powinna wyglądać tak: | Nazwa atrybutu | Nazwa atrybutu | Nazwa atrybutu | Nazwa atrybutu ___________________________________________________________ Nazwa obiektu | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa obiektu | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa obiektu | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa obiektu | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa obiektu | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa obiektu | Nazwa wartości | Nazwa wartości | Nazwa wartości | Nazwa wartości | Tutaj są screeny konkretów Wynik zapytania mysql Wygąd po wyświetleniu na stronie Na chwile obecną żeby wyświetlić nazwę obiektu i nazwę atrybutu z bazy używam osobnych dwóch zapytań, bo inaczej nie potrafię. Prosiła bym o: - powiedzenie mi czy to zapytanie waszym zdaniem jest poprawne żeby wyświetlić to w takiej formie jak potrzebuję? - jakieś wskazówki/wytłumaczenie odnośnie tego jak to wyświetlić w tabelce za pomocą php i htmla. Proszę o pisanie na chłopski rozum gdyż niestety w tej tematyce dopiero raczkuje ![]() Jeżeli zapomniałam coś dopisać lub napisałam niezrozumiale proszę mnie poinformować Z góry dziękuje za każdą pomoc.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Trudno określić co w tych tabelach siedzi, zazwyczaj podanie struktury tabel to pierwsze co robią ludzie szukający pomocy. Zwłaszcza jeśli wyniki ze screena z phpmyadmina wyglądają podejrzanie jeśli chodzi o wartosc_num. Może to miały być numeryczne odpowiedniki słów TAK NIE WYSOKA itp? W ogóle to zapytanie wygląda dziwnie, choć bez struktury ciężko powiedzieć.
Ogólnie do wyświetlania takich tabelek należałoby dodać sortowanie w zapytaniu typu ORDER BY wiersz,kolumna czyli przykładowo ORDER BY nazwa_obiektu, nr_kolumny po czym ciągnąc z bazy poszczególne rekordy przy zmianie nazwy obiektu wstawiamy htmlowy koniec i początek nowego wiersza tabelki. Ewentualnie znając konkretne ilości można dwie pętle jedna w drugiej zrobić. Ale to pod warunkiem absolutnej pewności że jest dokładnie tyle ile trzeba w bazie. Do wyciągania ilości rekordów lepiej używać zapytań typu "SELECT COUNT(*) FROM obiekt" niż brać wszystko z tabeli i odczytywać num_rows. Jeśli się uczysz to staraj się unikać funkcji mysql_ , które są mocno przestarzałe i od razu ucz się przynajmniej mysqli_ , nawet jeśli obiektowe podejście wydaje się na początku niezrozumiałe. Do znalezienia w sieci jest masę poradników z gotowymi kawałkami kodu do podstawowych operacji na bazie. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 14.02.2017 Ostrzeżenie: (0%) ![]() ![]() |
Wiedziałam, że o czymś zapomniałam. Już uzupełniam to czego brakowało.
Screeny bazy i tabel: Baza schemat.jpg Tabele: tabela, atrybut, obiekt Tabela pozycja Tabela wartość Kod sql bazy: Baza plik.sql wartosc_num na chwile obecną to po prostu numer kolumny. Każdy obiekt i atrybut ma mieć przypisaną odpowiednią wartość z bazy. Tabela pozycja jest po to żeby wiedzieć, w którym miejscu (na jakiej pozycji) jest jaka wartość. Ważne jest to, że nazwy obiektów, atrybutów i wartości muszą być w takiej kolejności jak są na zdjęciu z pierwszego postu czyli atrbybuty w kolejności: bół mięsni, ból głowy, gorączka, grypa obiekty w kolejności: 1, 2, 3, 4, 5, 6 (i wartości jak na zdjęciu z Wygąd po wyświetleniu na stronie ). Po wyświetleniu na stronie muszę mieć możliwość porównania przykładowo dajmy na to: obiekt 1 i 6 mają te sama wartości dla atrybutów ból głowy, ból mięśni, temperatura ale inną wartość dla atrybutu grypa lub obiekt x i y mają rożne wartości dla wszystkich atrybutów. Może teraz jest jaśniej i uda się stwierdzić czy tym zapytaniem jestem w stanie to wyświetlić a jeśli tak to sugestie jak to zrobić żeby użyć jednego zapytania a nie kilku no chyba, że się nie da jednym i trzeba użyć kilku. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Pomijając zasadność takiej struktury danych, jeśli tak ma być to wystarczy jedno zapytanie
I do zbudowania tabelki w html to jest wszystko co trzeba. Można sobie całość zapisać w tablicy lub też tylko pierwszy wiersz żeby zrobić th a potem po kolei sprawdzamy rekordy i jeśli zmienia się nazwa obiektu to zamykamy tr, otwieramy nowe i wstawiamy na początek dodatkowe td z nazwą obiektu a oprócz tego dla każdego rekordu dodajemy td z nazwą wartości. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 14.02.2017 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje bardzo, w takim razie muszę pokombinować jak to wyświetlić żeby wyglądało tak jak powinno.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:07 |