Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/sql] Tworzenie zapytania
Kreton
post
Post #1





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


Witam, potrzebuję stworzyć zapytanie: przykładowo:
  1. UPDATE `klasa` SET `Matematyka` = '5,5,5,5',`Język Polski` = '5,5,5,5',`Historia` = '5,5,5,5',`Angielski` = '5,5,5,5',`Biologia` = '5,5,5,5',`Chemia` = '5,5,5,5' WHERE `id` = '5' ;


Mam 2 tablice : $kolumny, gdzie od indeksu 3 zaczynają się przedmioty ( a właściwie nazwy przedmiotów, ale także są to nazwy kolumn w tabeli z ocenami w bazie ). $nowe_oceny ( oceny przesłane przez formularz )gdzie również indeksowanie zaczyna się od 3, aby zachować zgodność z tablicą $kolumny. I teraz nie wiem jak automatycznie takie zapytanie jak wyżej wygenerować, chodzi tylko o siąg pomiędzy 1 przedmiotem a ostatnim. Liczba przedmiotów się zmienia, wiec musi to być generowane na podstawie tych tablic wyżej.
Pomóżcie bo nie mam zielonego pojęcia jak to zrobić :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


A dlaczgo nie rozbijesz to na tabele. Bo nie sadze ze za kazdym razem gdzie dojdzie inny przedmiot robisz nowa strukture i zmieniasz logikie w kodzie.

Rozbiej na tabele przedmiot, ocena i to ze soba wszystko polacz

A tak zanim cos zrobisz polecam przeczytac ksiazeczke podstawy SQLa tam takie przypadki sa opisane.
Go to the top of the page
+Quote Post
Kreton
post
Post #3





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


Obecnie nie mam kasy żeby sobie taką książeczkę kupić. Możesz troszkę szerzej odnośnie polącznia table przedmiot i ocena ? Pozatym dodawanie przedmiotów poprostu powoduje dodanie kolumny w tabeli oceny. Więc nie wiem o jaką zmianę logiki w kodzie chodzi ?
Go to the top of the page
+Quote Post
acztery
post
Post #4





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


kasy nie masz ale masz inteternet na ten temat znajdziesz mase
Go to the top of the page
+Quote Post
Kreton
post
Post #5





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


W zasadzie to nie wiem na jaki konkretny temat mam szukać w necie -.-

Dobra poradziłem sobie z tym. Ale powiedzcie mi dlaczego praktykowanie czegoś takiego nie jest dobre ? Mało efektywne lub coś w tym stylu ? A tego co obecnie widzę działa bez zarzutów.

Ten post edytował Kreton 5.08.2006, 12:02:56
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Dokladnie malo efektywne. Nowe przedmioty powoduja zmiane logiki jak i struktury bazy

klasa
id | nazwa

przedmiot
id | nazwa

ocena
id | wartosc

uczen
id | imie | nazwisko | klasa_id

przedmiot_klasa
id | przedmiot_id | klasa_id

uczen_ocena
id | uczen_id | ocena_id

Takie cos, oczywiscie mozna zrobic to inaczej ale takie rozbicie jast latwiejsze do zaimplementowania i wiele rzeczy wynika z relacji.
Go to the top of the page
+Quote Post
Kreton
post
Post #7





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


No dobra, ale załozmy jak mam pobierać oceny ? Patrze na to co ty napisałeś. Strukture tabeli. I w żaden sposób nie wiem jak to wszytko połączyć :/ Sry, ale naprawde tego nie kumam :/ Czym rózni się tutaj tabelka ocena od ocena_ucznia ? czym przedmiot od przedmiot_klasa ?

Gdybyś mogł to słownie rozwinąć to był bym bardzo wdzięczny.

Ten post edytował Kreton 5.08.2006, 13:20:54
Go to the top of the page
+Quote Post
SongoQ
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Tabela klasa ocena przedmiot to sa tabele z definicja. Pozostale to tabele zlonczeniowe, w nich wtedy siedza najawzniejsze dane.

Zapytanie ktore wyciaga potrzebne dane to zlanczenie tabel. Zapoznaj sie z tematem relacji w bazach danych i ogolnie z tematem relacyjnych baz danych, wtedy zrozumiesz strukture.
Go to the top of the page
+Quote Post
Kreton
post
Post #9





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


ok, wielkie dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Gdyby ktoś miał jakieś ciekaw artykuły na ten temat jestem gotowy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Narazie idę mieszać po googlach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Dobra poszukałem na necie, troszkę artykułów. Mam tylko pytanie, czy to co mam tutaj użyć to są tzw. JOIN-y ? Iloczyny kartezjańske ?

Ten post edytował Kreton 6.08.2006, 08:45:43
Go to the top of the page
+Quote Post
SongoQ
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
Dobra poszukałem na necie, troszkę artykułów. Mam tylko pytanie, czy to co mam tutaj użyć to są tzw. JOIN-y ? Iloczyny kartezjańske ?

TAK.
Go to the top of the page
+Quote Post
Kreton
post
Post #11





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


Ok, wiem już co i jak. Tylko mam kolejne pytanie.
Tabela oceny: Założmy ze skrypt bedzie dodawał oceny do tej tabeli w takiej formie:

Kod
ID | ID_ucznia | ID__Przedmiotu | Oceny Tego przedmiotu

W szkole będzie 13-15 przedmiotów. Uczniów od 200 do 1000. Wiec będzie to 15 tysięcy krotek. Na moje oko to bardzo dużo. Czy jeżeli potem będę chciał pobrać te oceny, to zapytanie nie będzie trwało bardzo długo ? Trzeba będzie przeszukać 15 tysięcy wierszy.

Ten post edytował Kreton 6.08.2006, 11:55:51
Go to the top of the page
+Quote Post
mike
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(Kreton @ 6.08.2006, 12:54 ) *
Wiec będzie to 15 tysięcy krotek. Na moje oko to bardzo dużo. Czy jeżeli potem będę chciał pobrać te oceny, to zapytanie nie będzie trwało bardzo długo ? Trzeba będzie przeszukać 15 tysięcy wierszy.

Nie martw się o to.
15tys. żadna ilość dla bazy danych.

Może problem byłby jakbyś iał tych danych z 10 000 000, to tak ale dla 15tys. to pikuś.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 07:09