Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sql/php] zapytanie zliczajace ilosc wystapien okreslonej wartosci
kebq
post 10.04.2007, 20:06:16
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

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


witam
posiadam tabele dziennik a w niej pola z imionami nazwiskami ocenami i średnimi
chciałbym pobrać z bazy oceny z powiedzmy polskiego i policzyć ile jest "1" ile "2" etc
tyle że nie brakuje mi troszkę wiedzy jak to zrobić tongue.gif
  1. SELECT polski FROM dziennik
i co dalej? smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
phpion
post 10.04.2007, 20:13:28
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Podaj strukture bazy danych.
Go to the top of the page
+Quote Post
kebq
post 10.04.2007, 20:17:04
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

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


  1. CREATE TABLE dziennik (
  2. id int(6) NOT NULL AUTO_INCREMENT,
  3. nazwisko varchar(40) DEFAULT NULL,
  4. imie varchar(40) DEFAULT NULL,
  5. adres text,
  6. memo text,
  7. polski tinyint,
  8. matematyka tinyint,
  9. biologia tinyint,
  10. chemia tinyint,
  11. historia tinyint,
  12. wos tinyint,
  13. informatyka tinyint,
  14. angielski tinyint,
  15. niemiecki tinyint,
  16. przedsiebiorczosc tinyint,
  17. srednia float(4),
  18. PRIMARY KEY (id),
  19. UNIQUE KEY id (id),
  20. FULLTEXT KEY nazwisko (nazwisko,memo)
  21. ) TYPE=MyISAM AUTO_INCREMENT=1

wiem ze nie najlepiej ale..
Go to the top of the page
+Quote Post
phpion
post 10.04.2007, 20:30:42
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Uuu, daruj sobie taka strukture, daleko na niej nie zajedziesz. Ja bym widzial ja tak:
uczniowie:
id, imie, nazwisko
przyklad:
1 Jan Kowalski
2 Ewa Nowak

przedmioty:
id, nazwa
przyklad:
1 Polski
2 Religia

dziennik:
id_ucznia, id_przedmiotu, ocena
przyklad:
1 1 1 // Jan ma z polskiego 1
2 2 4 // Ewa ma z religii 4
1 1 3 // Jan sie poprawil i z polskiego dostal 3
Go to the top of the page
+Quote Post
kebq
post 10.04.2007, 20:35:23
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

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


skrypt pisany bardzo na szybko + poziom moich umiejętności, tak wyszło, wiem ze da sie lepiej zaprojektować struktura bazy
czy na aktualnej strukturze da się zliczyć w miarę prosto ilość wystąpień np. jedynek z polskiego?
Go to the top of the page
+Quote Post
Zeman
post 10.04.2007, 20:46:20
Post #6





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.03.2007

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


SELECT COUNT(*) as ile, polski FROM tabela GROUP BY polski


--------------------
www.web2biz.pl | trochę o web-usability
Go to the top of the page
+Quote Post
phpion
post 10.04.2007, 20:48:05
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Moznaby pokombinowac ale moj przyklad jest duzo lepiej zorganizowany! Nie ma redundacji danych, sa 2 osobne tabelki dla uczniow oraz przedmiotow, oraz laczaca je tabelka z ocenami. Na takiej strukturze mozesz wszystko! Liczyc srednie kazdego ucznia, sumowac oceny (jesli licza sie jako punkty), wskazywac najlepszych uczniow, najgorszych. Przejdz na moja baze...
Go to the top of the page
+Quote Post
kebq
post 10.04.2007, 21:49:10
Post #8





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

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


Zeman:
  1. SELECT COUNT(1) AS ile, polski FROM dziennik GROUP BY polski

rozumiem ze to mi zliczy jedynki z polskiego?
BTW jaką funkcje pełnia ' i ` w których czasami zamykane są nazwy tabel etc?

phpion.com: kiedy będę przepisywać tą prowizorkę z której teraz korzystam na pewno zastosuje twoje rady, dzięki smile.gif

Ten post edytował kebq 10.04.2007, 21:50:46
Go to the top of the page
+Quote Post
phpion
post 10.04.2007, 21:56:28
Post #9





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nie, kod zemana wypisze ci wszystkie isntiejace wartosci dla polskiego wraz z liczba ich wystapien. Nie dawaj 1 zamiast * - zostaw *.
Go to the top of the page
+Quote Post
Zeman
post 10.04.2007, 22:19:41
Post #10





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.03.2007

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


Cytat(kebq @ 10.04.2007, 22:49:10 ) *
BTW jaką funkcje pełnia ' i ` w których czasami zamykane są nazwy tabel etc?


Nazwy pól i tabel powinno się pisać w `nazwa`, jest to składnia mysqla. Praktycznie w 99% nie potrzeba pisać `. Są jednak przypadki, gdy będziemy chcieli mieć nazwę pola lub tabeli taką samą jak któreś słowo kluczowe SQLa. Co wtedy? Baza zgłosi błąd jeśli nazwa nie będzie w ``.
Np

wywali błąd:
  1. SELECT events FROM tabela


poprawnie:
  1. SELECT `events` FROM tabela


--------------------
www.web2biz.pl | trochę o web-usability
Go to the top of the page
+Quote Post
aga323
post 11.04.2007, 13:46:34
Post #11





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.01.2007
Skąd: Oborniki

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


phpion.com a jak najlepiej napisać by skrypt wczytujący oceny 1 ucznia z poszczególnych przedmiotów?
I druga sprawa jeśli w moim dzienniczku oceny miałby wprowadzać wychowawca to chyba najlepszym rozwiązaniem byłoby pokazanie listy uczniów i ich ocen z 1 przedmiotu. Tylko teraz jakby można było rozwiązać problem wprowadzania tych ocen, w formie formularza czy jak, bo za bardzo nie mam na to pomysłu...


--------------------
Go to the top of the page
+Quote Post
kebq
post 20.05.2007, 15:30:09
Post #12





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

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


Cytat(phpion.com @ 10.04.2007, 19:30:42 ) *
dziennik:
id_ucznia, id_przedmiotu, ocena
przyklad:
1 1 1 // Jan ma z polskiego 1
2 2 4 // Ewa ma z religii 4
1 1 3 // Jan sie poprawil i z polskiego dostal 3


witam po dłuższej przerwie
mam problem ze skonstruowaniem tej części
mianowicie, jak mam ściągnąć id_ucznia i przedmiotu?
dodać pola o takich samych nazwach jak w poprzednich tabelach? tongue.gif

Ten post edytował kebq 20.05.2007, 15:38:09
Go to the top of the page
+Quote Post
phpion
post 20.05.2007, 16:26:52
Post #13





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Możesz to zrobić np. tak, że tworzysz formularz z dwoma polami <select> i jednym <input type="text"> oraz buttonem do przesłania formularza winksmiley.jpg Do pierwszego selecta wczytujesz wszystkich uczniów w formie <option value="$id">$nazwisko</option> i analogicznie do drugiego wczytujesz wszystkie przedmioty <option value="$id">$nazwa</option>. Potem wybierasz z listy rozwijanej odpowiedniego ucznia, przedmiot, wpisujesz ocene i wysyłasz formularz. Po sprawie.
Go to the top of the page
+Quote Post
kebq
post 20.05.2007, 18:03:32
Post #14





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

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


chodziło mi o konstrukcję tej części bazy danych tongue.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:15