Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> prośba o podpowiedź w sprawie ankiety
jarod20
post 8.01.2005, 16:23:45
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Mragowo

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


Witam,
Chciałbym zrobić ankietę opartą o php i MySQL. Ankieta ma zawierać kilkanaście pytań, zarówno z możliwością wyboru tylko jednej odpowiedzi, jak i z możliwością wyboru więcej niż jednej odpowiedzi. O ile to pierwsze wiem jak zrobić, to nie wiem, jak wysłać do bazy informacje, że na dane pytanie ankietowany udzielił na przykład odpowiedzi numer 2 i 5.
Czy ktoś mógłby mi podpowiedzieć jak powinienem skonstruować tabele w bazie i jak wpisywać do nich takie informacje.
Z góry dziękuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
sf
post 8.01.2005, 17:12:19
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Zawsze możesz skorzystać z uniwersalnego sposobu jakim jest zapis poprzez liczby binarne. Co mam na myśli? Jeżeli ustawiasz prawa to jak może wiesz jest to suma praw odczytu, zapisu, wykonywania ... Jak to w twoim przypadku ma wyglądać? Mamy np. 5 odpowiedzi. 00000 - zero zaznaczonych. 01001 - zaznaczona pierwsza odpowiedź oraz czwarta, po konwersji na system dziesiętny wychodzi 2^0+2^3=9 i tą liczbę zapisujesz do pola smile.gif Potem jak będziesz chciał wyciągnąć dane to zamienisz znów na binarne i wydobędziesz, które pola były zaznaczone.

Może ktoś ma inny pomysł ;}


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
jarod20
post 8.01.2005, 18:19:42
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Mragowo

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


Dzięki za podpowiedź, ale mam nadzieję, że można to rozwiązać w jakiś prostszy sposób.
Go to the top of the page
+Quote Post
popbart
post 9.01.2005, 15:54:59
Post #4





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Jedno z najczęstszych rozwiazań:

tabela: ankieta
id_ank | nazwa

tabela: pytanie
id_pyt | id_ank | nazwa

tabela: odpowiedź
id_odp | id_pyt | nazwa

edit---
do tabeli odpowiedź dodaj user'a

Ten post edytował popbart 9.01.2005, 16:00:16


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
jarod20
post 9.01.2005, 16:45:27
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Mragowo

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


W ten sposób można zaprojektować tabele dla ankiety(sondy raczej) z jednym pytaniem i kilkoma odpowiedziami, spośród których wybiera się tylko jedną. A przynajmniej tak mi się wydaje, choć pewnien nie jestem, bo dopiero zaczynam zabawę z php i MyQSL. Myślę, że podpowiedź sf jest bliższa temu, o co mo chodzi, szukam jednak czegoś prostszego. Nie wątpię, że można to zrobic inaczej, tylko pytanie brzmi: jak? Może zna ktoś adres internetowy, pod którym znajdę jakąś podpowiedź.
Jeszcze raz z góry dziękuję.
Piotrek
Go to the top of the page
+Quote Post
popbart
post 10.01.2005, 09:11:09
Post #6





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Nie rozumiem cię. Przecież ja ktoś wybierze kilka odpowiedzi to do tabeli glos wprowadzasz tyle rekordów.Żeby wyświetlić kto udzielił jakich odpowiedzi wykonujesz odpowiednim zapytaniem a nie strukturą danych. Ciekaw jestem jak w rozwiązaniu sf obliczysz ile kto oddał wszystkich odpowiedzi albo jak wyciągniesz nazwy odpowiedzi(relacje).

edytowane---

W moim przykładzie zabrakło tabel
tabela: ankieta
id_ank | nazwa

tabela: pytanie
id_pyt | id_ank | nazwa

tabela: odpowiedź
id_odp | id_pyt | nazwa

tabela: glos

id_glos | id_odp | id_user

tabela: user
id_user | nazwa

Ten post edytował popbart 10.01.2005, 09:30:34


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
kszychu
post 10.01.2005, 09:44:40
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Prosciej? proszę bardzo.
Tworzysz w bazie pole varchar a w nim przechowujesz odpowiedzi na dane pytanie oddzielone np, przecinkiem. Obsługa balanlnie prosta (explode, implode).


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
jarod20
post 10.01.2005, 20:43:52
Post #8





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Mragowo

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


Już rozumiem. Wielkie dzięki!
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: 13.08.2025 - 22:56