![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
chciałbym poznać ile razy w wierszu tabeli występuje np.litera x lub c lub w.
czyli uzyskać np.6 obecnie mam taki kod:
(IMG:http://dentopolis.org/sql.jpg) Ten post edytował dentopolis 14.03.2017, 19:53:04 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nazw kolumn nie umieszcza się w pojedynczych apostrofach.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
okay zmieniłem ale wynik się nie zmienił
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie uważasz, że 18='w', to będzie po prostu porównanie liczby 18 do stringu 'w'?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
więc jak proponujesz?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Zacząłbym od poprawnej struktury danych tj. wydzielenia tych śmiesznych kolumn do osobnej tabeli, gdzie miałbyś 3 kolumny: id_badania, ta_dziwna_kolumna, wartość. Wtedy zadanie staje sie trywialne.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
numery 48,47...to numery zębów a litery to stany zębów (x=brak, c-próchnica;w-wypełnienie)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 32 Dołączył: 10.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
Zacząłbym od poprawnej struktury danych tj. wydzielenia tych śmiesznych kolumn do osobnej tabeli, gdzie miałbyś 3 kolumny: id_badania, ta_dziwna_kolumna, wartość. Wtedy zadanie staje sie trywialne. numery 48,47...to numery zębów a litery to stany zębów (x=brak, c-próchnica;w-wypełnienie) Zrób jak ci kolega powiedział to bedzie łatwe wtedy :] select sum('id') form zeby where id_badania = X and id_pacjenta = Y and stan = "w" i pewnie jeszcze ostatnia data czy co tam ci potrzebne Ten post edytował Lord 14.03.2017, 23:20:30 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
ale "stan" muszę przypisać do 36 zębów (kolumn). jest inna opcja?
|
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
próbuję to zrobić w php w ten sposób:
ale potem gdy próbuję to dodać to mam 0: $liczbaw=$rightuppersevenw+$rightuppereightw; z kolei jeśli zamienię operator == na = to liczy mi także komórki z wartościami innymi niż w np.'c' Ten post edytował dentopolis 15.03.2017, 08:03:38 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 33 Dołączył: 8.09.2014 Ostrzeżenie: (0%) ![]() ![]() |
wygodniej zapytaniem. zmień strukturę tabeli tak jak mówił phpion id_badania, numer_zeba, stan.
wyjdzie ile wypełnien, próchnicy, braków ps. to coś komercyjneo? Ten post edytował borabora 15.03.2017, 12:01:57 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
to skrypt do mojego gabinetu. czyli baza ma wyglądać tak?
id 18 x id 17 c id 16 c id 15 w itd? jeszcze po id kolumna idpacjenta |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 32 Dołączył: 10.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
1 tabela
id_pacjenta, nazwisko .... inne dane 2 tabela id_badania, id_pacjenta, data_badania ..... inne dane 3 tabela id, id_pacjenta, id_badania, nr_zeba, stan cos takiego i wtedy masz duzo prościej pobrac te dane co sa ci potrzebne |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
W 3 tabeli id_pacjenta jest już podane 2 tabeli po której wiążesz. Pamiętaj też że w mysql masz pole enum które mogłoby pasować do przechowywania stanu.
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
tylko że przy takim rozwiązaniu przy każdym badaniu będzie trzeba zapisać do bazy 36 wersów zamiast 1
a co jest nie tak w poście nr 12? Ten post edytował dentopolis 15.03.2017, 15:12:52 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witaj w świecie relacyjnych baz danych (IMG:style_emoticons/default/smile.gif) Tak się to robi. I przykładowo mógłbyś teraz zapisywać dodatkowe informacje do każdego zęba. Niemożliwe przy oryginalnym kodzie.
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
okay, zrobiłem jak opisaliście, ale jak teraz przypisać wartość komórki do zmiennej żeby uzyskać:
$rightuppereight = 'x'; (IMG:http://www.dentopolis.org/sql2.jpg) |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 32 Dołączył: 10.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
$rightuppereight rozumiem ze to jest górna prawa 8 to pewnie to jest jakis numerek w bazie np 18 czy cos ? kolejna sprawa to wydaje mi sie ze nie powinno byc tam pacjant, a idb bo tak to bedziesz mial tylko ostatni/aktualny stan pacjenta, a nie wyniki poprzednich badan.
kolejna sprawa czemu chcesz zapisac to w formie $rightuppereight a nie w jako tabele aktualnego stanu $ostatniebadanie['id_zeba'] = x mozesz wtedy pobrac dane:
i potem masz
Ten post edytował Lord 15.03.2017, 16:24:32 |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
dzięki Lord za pomoc,ale czy mógłbym Cię prosić o podanie jak to ugryźć tym sposobem który mam obecnie? tzn
jak wrzucić dane do zmiennych (odpowiadają numerom zębów): $rightuppereight = 'x'; $rightupperseven = 'c'; itd |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
W ostateczności możesz ponownie przepisać tablicę którą podal lord. Tylko po co? Możesz napisać więcej co chcesz osiągnąć? To jakieś wyświetlanie czy może przeliczanie wartości?
|
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
chciałbym w komórkach tabeli (pierwszym wierszu) wypisać stan zęba (x,c lub w).domyślnie pole ma być puste i wtedy wyświetla się ząb biały.gdy wartość jest x obrazka nie ma (brak zęba), gdy c-obrazek jest czerwony (do leczenia), gdy w-obrazek jest zielony (wypełnienie).
oprócz tego chcę potem policzyć ile jest usuniętych ile do leczenia, ile wypełnionych. wcześniej potrafiłem wypisać wartości (stany zębów) mając dane w jednym wersie, ale nie potrafiłem ich sumować. a teraz odwrotnie. (IMG:http://www.dentopolis.org/sql3.jpg) |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Kod który podał Ci Lord dokładnie robi to co chcesz. Iteruje po wszystkich zębach danego pacjenta. Możesz teraz stworzyć dodatkowe zmienne przed pętla i później warunkami if ($v[´stan´] === 'x') zwiększ licznik itd.
|
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
okay, ale jak ten kod powinien wyglądać? chociaż jeden przykład byłby pomocny:
wyświetlanie obrazków:
|
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 32 Dołączył: 10.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
okay, ale jak ten kod powinien wyglądać? chociaż jeden przykład byłby pomocny:
Takie zapis: $obrazki .= "<img src='gfx/tooth.png' width='50px'>" ; to to samo co: $obrazki = $obrazki."<img src='gfx/tooth.png' width='50px'>" ; Ten post edytował Lord 15.03.2017, 18:52:33 |
|
|
![]()
Post
#27
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 32 Dołączył: 10.03.2004 Ostrzeżenie: (10%) ![]() ![]() |
No to musisz szukac (IMG:style_emoticons/default/tongue.gif)
ogólnie to cieżko ten kod sie przegląda (IMG:style_emoticons/default/wink.gif) Poczytaj trochę o warstwie prezentacji czy jak to sie tam zwie (IMG:style_emoticons/default/smile.gif) https://pl.wikibooks.org/wiki/PHP/Czym_jest...ablon%C3%B3w%3F |
|
|
![]()
Post
#29
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
zrobiłem to po swojemu (małą wiedzą php),jest dużo zapytań do bazy ale działa.
(IMG:http://dentopolis.org/sql5.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 01:50 |