Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prośba o sugestię jak zaprojektować systemik
Forum PHP.pl > Forum > PHP
dugem
Witam wszystkich,

zmierzam się z problem związanym z tym jak pisać w php. Konkretnie chodzi mi o to jaką strukturę plików przyjąć czyli, które pliki za co mają odpowiadać. Konkretnei chcę stworzyć system do ankietowania osób, przy czym user moze tworzyć własne ankiety czyli generować własne pytania, które potem prezentowane bedą gdzieś na www i nikt nawet nie będzie wiedział, że obsługuje to jkaiś systemik.

Moje problemy to:
- jak walidować dane, możesz trochę szerzej: konkretnie jak zrobić, żeby nie mieszały się formularz, walidacja danych itp. Próbowałem zrobić coś takiego : include i tutaj plik z formularzem, tyle, że w przypadku danych nie wiem jak zaciągnąć informację na ten temat z głównego docu, czy to muszą być zmienne sesji?

- jak najlepiej zapisać definicję takiej ankiety? xml, xml w bazie jakos text czy też tablea question z odpowiednimi polami, które potem się dekoduje tdo formularz widocznego dla usera. Osobiście zastanawiałem się nad tym trzecim wariantem.

- czy dla każdej ankiety, bo zakładam, że tych danych będzie dużo tworzyć nową tabelę o nazwach pool_nr gdzie nr zmiennia sie jako id ankiety?

Jeżeli macie jakieś doświadczenia w tym polu to prosze o sugestię. Może znacie jakieś fajne proadniki odnośnie projektowania takich rzeczy?
dtb
nmie wiem czy dobrze zrozumialem, ale kiedy includujesz plik, to w tym includowanym pliku mozesz uzywac zmiennych z glownego pliku (i na odwrot)

- zrob 2 tabele:

ankiety:
id_ankiety | pytanie

odpowiedzi:
id_ankiety | opd1 | ilosc opdpowiedzi
id_ankiety | opd2 | ilosc opdpowiedzi
dugem
Cytat
nmie wiem czy dobrze zrozumialem, ale kiedy includujesz plik, to w tym includowanym pliku mozesz uzywac zmiennych z glownego pliku (i na odwrot)


Ok zatem pytanie jak efektywnie przekazać zmienne pomiędzy poszczególnymi plikami odpowiedzialnymi za poszczególne operacje na ankietach. Trzeba przekazać przede wszytskim zmienną id ankiety?


Cytat
- zrob 2 tabele:

ankiety:
id_ankiety | pytanie

odpowiedzi:
id_ankiety | opd1 | ilosc opdpowiedzi
id_ankiety | opd2 | ilosc opdpowiedzi


Hm wiesz co myślałem nad tym z założenia każda nakieta może mieć dowolną ilość pytań odpowiedzi mogę być różnego rodzaju: jednokrotengo wyboru, wielokrotnego wyboru, tesktowe itd.
Zastanawiałem nad czymś takim

  1. CREATE TABLE pools (
  2. id int(10) NOT NULL AUTO_INCREMENT,
  3. member_user_id int(10) NOT NULL,
  4. STATUS enum('0','1','2'),
  5. name varchar(100) NOT NULL,
  6. introduction text,
  7. summary text,
  8. PRIMARY KEY (id)
  9. );


czyli tu przechowuje info o poolach status jest istotny mianowicie:
0 niekatywna, czzyli nie user nie może wypełniać ankietę
1 aktywna, czyli user może wypełniać ankietę
2 ankieta w trakcie tworzenia.
Zatem póki amdin ankiety dodaje sobie pytania status jest 2. Dan wrzucane są do poniższej tabeli:
  1. CREATE TABLE pools_questions (
  2. pool_id int(10),
  3. question_number int(10),
  4. question text,
  5. type enum ('1','2','3','4','5','6','7','8','9'),
  6. atributes text
  7.  
  8. );


type to typy pytań, zaś atrybuty to zakodowane możliwe odpwiedzi lub atrybuty pytań.

Zaś po wykonaniu akcji nazwijmy ją zakończ tworzenie ankiety generować tebelę, która brała by dane wprost z tabeli pools_questions. Po tej akcji modyfikowanie ankiety nie jest możliwe.

Uwaga ładŁadując ankietę dla kogoś kto ma ją wypełnić będę robił querry na pools_questions, żeby wyciągnąć definicję ankiety.

Problemy:
- jak procesować dane wysyłane przez ankietowaną osobę?
- czy idea jest dobra, może lepiej zrobić to inaczej. Może jakieś propozycje, sugestie.
dtb
mozesz zrobic to w ten sposob:
pytanie | tablica_z_lista_odpowiedzi | tablica_zaznaczonych_odpowiedzi | info

tablica zapisujesz uzywajac funkcji serialize i unserialize
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.