[MySQL] suma x |
[MySQL] suma x |
14.03.2017, 19:51:19
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:
Ten post edytował dentopolis 14.03.2017, 19:53:04 |
|
|
14.03.2017, 20:00:05
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Nazw kolumn nie umieszcza się w pojedynczych apostrofach.
-------------------- |
|
|
14.03.2017, 21:06:02
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ł
|
|
|
14.03.2017, 21:10:28
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 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'?
-------------------- |
|
|
14.03.2017, 21:48:32
Post
#5
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) |
więc jak proponujesz?
|
|
|
14.03.2017, 22:02:49
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
-------------------- |
|
|
14.03.2017, 22:10:20
Post
#7
|
|
Grupa: Moderatorzy Postów: 6 070 Pomógł: 860 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.
|
|
|
14.03.2017, 22:21:33
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)
|
|
|
14.03.2017, 23:17:15
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 |
|
|
15.03.2017, 00:09:45
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?
|
|
|
15.03.2017, 07:06:47
Post
#11
|
|
Grupa: Moderatorzy Postów: 6 070 Pomógł: 860 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
|
|
|
15.03.2017, 07:58:49
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 |
|
|
15.03.2017, 11:58:52
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 |
|
|
15.03.2017, 12:53:07
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 |
|
|
15.03.2017, 14:25:16
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 |
|
|
15.03.2017, 14:40:58
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 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.
-------------------- |
|
|
15.03.2017, 15:12:04
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 |
|
|
15.03.2017, 15:14:41
Post
#18
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Witaj w świecie relacyjnych baz danych Tak się to robi. I przykładowo mógłbyś teraz zapisywać dodatkowe informacje do każdego zęba. Niemożliwe przy oryginalnym kodzie.
-------------------- |
|
|
15.03.2017, 15:44:21
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'; |
|
|
15.03.2017, 16:24:10
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 |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 20:26 |