![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Muszę stworzyć dynamicznie kilka tabel, których nazwa będzie zależna od ID dodawanego wiersza do innej tabeli.
W warunku if dodałem zmienną
Poza warunkiem if dodałem instrukcję:
Niestety nowa tabela nie jest utworzona ![]() ![]() Pozdrawiam dgaleza |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
$id to liczba? Nazwa tabeli nie moze byc liczbą.
Proponuje jednak zmiane struktury. Jedna tabela, ktora zawiera to co kazda tabela co chcesz stworzyc, ale dodac pole identyfikujace ucznia i juz. PO co dla kazdego walic inna tabele? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Z początku też myślałem, że nazwą tabeli nie może być liczba, ale się okazało przy ręcznym tworzeniu tabeli, że jest w stanie taką właśnie tabelę stworzyć.
Zmienię $id na $przedmiot. Wtedy nazwa tabeli będzie równoznaczna z nazwą przedmiotu który obsługuje. Nie tworzę osobnych tabel dla każdego ucznia, tylko dla kazdego przedmiotu. Przedmioty dodaje się na specjalnej liście wraz z nazwiskami nauczycieli. Chciałem, by podczas tworzenia przedmiotu tworzyła się tabela o nazwie=ID dodawanego wiersza Spróbuję zmienić tą nazwę tabeli i opisze swoje poczynania. Poprawiłem, ale i tak nie działa ![]() Wygląda to tak:
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Z początku też myślałem, że nazwą tabeli nie może być liczba, ale się okazało przy ręcznym tworzeniu tabeli, że jest w stanie taką właśnie tabelę stworzyć. hmmm, mi nie byl w stanie tego stworzyc.Cytat Nie tworzę osobnych tabel dla każdego ucznia, tylko dla kazdego przedmiotu. Chodzilo mi bardziej o idee, a nie oto czy to osobna tabela na ucznia czy na przedmiot.Po co tworzyc osobne tabele na cos, co mozna w jednej zapisac? Tak sie nie robi. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 3.05.2005 Ostrzeżenie: (10%) ![]() ![]() |
A oplaczyles sie z baza danych i wybrales odpowiednia baze?
Ten post edytował qbatoja 29.09.2006, 13:24:16 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Łącze się z bazą danych, ponieważ dodaję rekordy do tabeli. I właśnie przy tym dodawaniu chciałem, by program tworzył dynamicznie tabele. Niestety tak się nie dzieje. Strona jest na serwerze altnet.pl
|
|
|
![]()
Post
#7
|
|
![]() 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%) ![]() ![]() |
Jaki blad zwraca? Trudno stwierdzic co Ci nie dziala. Jak juz ktos wile razy powtarzal nie jestesmy wrozkami zeby takie rzeczy wiedziec.
-------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
1. Tak jak napisal nospor, liczba nie moze byc nazwa tabeli!
2. Powinno byc:
Naucz sie wyswietlac bledy (mysql_error() oraz error_reporting( E_ALL )), a nie bedziesz mial tylu problemow. ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
PANOWIE!!! Działa. Musiałem dodać mysql_query w warunku if!!!
Powracając do zapisywania danych w jednej tabeli, to powiedz w jaki sposób dynamicznie tworzyć kolumny? ![]() Jak narazie wszystko działa!!! Wznawiam prace ![]() Już znalazłem odpowiedź na swoje pytanie. Tylko czy tak rzeczywiście powinienem zrobić. Tzn. jedna tabela, a następnie dodawanie kolumn za pomocą polecenia. Czy będzie szybciej i prościej? ![]()
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Powracając do zapisywania danych w jednej tabeli, to powiedz w jaki sposób dynamicznie tworzyć kolumny? A kto ci kazal tworzyc dynamicznie kolumny? Kazdy nowy przedmiot to nowy rekord a nie nowa kolumna. a rekordy to przy pomocy "insert" sie wklada ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ja myślałem o czymś takim:
+---------------+---------------+------------+ | przedmiot1| przedmiot2| uczen_ID| +---------------+---------------+------------+ | oceny1.......|oceny2.........|35.............| +---------------+---------------+------------+ Stąd właśnie dynamiczne tworzenie kolumn. W ten sposób będzie chyba łatwiej wyświetlić dane |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
a ja myslalem o takiej:
Kod idUcznia | idPrzedmiotu | ocena I kazdy rekord w tej tabeli opisuje jedna ocene dla konkretnego ucznia z konkretnego przedmiotu -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
dgaleza: poprzegladaj jakies proste przykladowe projekty poprawnych (4p
![]() -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
a ja myslalem o takiej: Kod idUcznia | idPrzedmiotu | ocena I kazdy rekord w tej tabeli opisuje jedna ocene dla konkretnego ucznia z konkretnego przedmiotu Ja również myślałem o tabeli tego typu, tylko czy to nie będzie marnotrawienie pamięci. Dajmy na to mamy 16 przedmiotów po 8 ocen z każdego i 35 uczniów. 16*8*35=4480!!! Wersja z kolumnami, gdzie oceny są wpisywane po przecinku: 16*35=560 Spora różnica. Prawda?? |
|
|
![]()
Post
#15
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No, roznica spora, ale nie zawsze o roznice chodzi
![]() Od biedy mozesz zrobic tak: Kod idUcznia | idPrzedmiotu | oceny gdzie oceny bedzie zawieralo oceny odzielone srednikami dla danego ucznia z danego przedmiotu. Akurat oceny w tym wypadku wydaja sie nie byc kluczowym elementem, jesli chodzi o jakies analizy czy tez wyszukiwania. No chyba ze jednak bedziesz robil jakies statystyki na ocenach, to jednak polecam rozbice tego na oddzielne rekordy jak na poczatku zaproponowalem -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#16
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
dgaleza: roznica jest prawie 10krotna, ale i tak taka baze zmiescilbys na DYSKIETCE! a miejsca masz zapewne duzo wiecej.
Gdy bedziesz mial znormalizowana baze to Cytat No chyba ze jednak bedziesz robil jakies statystyki na ocenach, to jednak polecam rozbice tego na oddzielne rekordy jak na poczatku zaproponowalem Bedzie duzo prostrze niz babranie sie z przecinkami/srednikami. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
To mały paradoks, ale jesteś bardziej doświadczony ode mnie i rzeczywiście ten pomysł jest bardzo dobry. Miałem zamiar dodać jeszcze jedną kolumnę o nazwie srednia, gdzie podczas dodawania oceny bylaby na biezaco obliczana srednia i nastepnie wyswietlana za pomoca txt i grafiki. Ale to juz mniejsza z tym.
Jeszcze raz dziękuję za odpowiedzi. |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 3.05.2005 Ostrzeżenie: (10%) ![]() ![]() |
oni maja racje ziomus, jakbys mial wykonywac operacje na srringu z liczbami odzielonymi przecinkami, to marnujesz zasoby. mniesjza o to. powo ;]
|
|
|
![]()
Post
#19
|
|
![]() 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 Miałem zamiar dodać jeszcze jedną kolumnę o nazwie srednia, gdzie podczas dodawania oceny bylaby na biezaco obliczana srednia i nastepnie wyswietlana za pomoca txt i grafiki. Ale to juz mniejsza z tym. Srednia zawsze mozesz w locie obliczac -------------------- |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Więc podsumujmy temat:
Czy lepiej tworzyć tabelę każda ocena w jednym rekordzie, czy wiele ocen w rekordzie? ![]() Którą z wyżej wymienionych opcji będzie łatwiej edytować i wyświetlać? ![]() Średniej nie chciałbym obliczać w locie, bo jak program zinterpretuje "5+"? ![]() Wiecie co Panowie. Robię tabele z jedną oceną w rekordzie, a oceny będę szyfrował. Tzn: przy wysyłaniu ocena nie jest zapisywana jako 5+ tylko 5.5. Następnie przy odczycie spradzenie czy jest ".", następnie czy po . jest 5 - jeśli tak +, elseif (czy po kropce jest 75) - |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 12:35 |