![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Najpierw parę informacji o co mi chodzi. Tworzę mini portal edukacyjny z generowanymi testami. Wszystko oparte o MySQL i PHP. Temat pilny. Pytania oraz odpowiedzi są w dwóch różnych tabelach tj.: Pytania: ID_Pytania | ID_Testu | Tresc_Pytania Odpowiedzi ID_Odpowiedzi | ID_Pytania | Tresc_Odpowiedzi | Czy_Prawidlowa A teraz do rzeczy. Potrzebuję wyświetlić pytanie a pod nim 4 odpowiedzi w radio buttonie. Mamy taki kod:
Póki co mam tylko wyświetlone w pętli pytania i po 4 radio do każdego i tutaj jest problem ![]() Już próbowałem pętle w pętli, ale nic nie dawało rady. Może zgłupiałem albo jestem cienki, a może coś przegapiłem. A żeby było śmieszniej potrzebowałbym żeby pytania były losowo wybierane i jak tu podczepić do losowych pytań odpowiedzi? PS. Jak nie ten dział to przepraszam, ale już tyle nad tym siedzę, że nie myślę ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pobierasz z bazy pytania. Zapisujesz sobie do tablicy ich ID i pobierasz pytania do nich.
Iterujesz po tablicy pytań, wypisujesz treść pytania i potem kolejna pętla która iteruje po pytaniach i wyświetlasz pytania. Oczywiście to najprostsze rozwiązanie, ale coś mi się wydaje że to temat na zaliczenie ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
A możesz to bardziej w wersji kodu zapodać?
![]() ![]() Pobierasz z bazy pytania. Zapisujesz sobie do tablicy ich ID i pobierasz pytania do nich. Chyba miałeś na myśli, że pobieram sobie pytania. Zapisuje ich ID do tablicy i pobieram odpowiedzi do nich ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
"Literówka"
A czego nie rozumiesz w tym co napisałem. Część kodu już masz. No chyba że to nie Ty go pisałeś ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
No jak nie pisałem jak pisałem.
Ale już parę razy kombinowałem i ani razu nie udało mi się zrobić tak jak chce :/ Nie za bardzo wiem, w którym miejscu miałbym wrzucić drugą pętle... |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
pętla w pętli
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
A możesz taką przykładową, która wg Ciebie będzie działać tutaj? Jak powinna wyglądać. Bo ja tracę nadzieje :/
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam dziś za dobry dzień. Masz prawie gotowiec. Nic więcej Ci nie pomogę bo i tak już za dużo dostałeś.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki... Dla kogoś kto jest zielony sam kod niewiele daje... Jakakolwiek próba przerobienia i odpalenia i tak wyrzuca błędy.. Ale dzięki
Zrobiłem dwoma pętlami FOR. Efekt? Pyt1 radio radio radio radio pyt2 radio radio radio radio itd.
Może komuś się przyda, jak nie w całości to w kawałkach. Ten post edytował M4rcin3z 17.01.2015, 17:49:22 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Taaa... tylko że to nie działa poprawnie, no chyba że nie musi... Tak więc nie sądzę że się komuś przyda
![]() Ten post edytował Pyton_000 17.01.2015, 18:12:02 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
W jakim sensie nie działa to prawidłowo?
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
W takim że pytania nijak się mają do odpowiedzi, no chyba że w BD masz w odpowiedniej kolejności pytania i odpowiedzi.
Poza tym radio są źle nazwane, brakuje identyfikacji odpowiedzi. Użyta stara biblioteka mysql_* Pobierasz wszystkie pytania i odpowiedzi, a wyświetlasz tylko 11 pytań. A co jak nie będzie tyle w BD? lipa.. Dalej nie chce mi się wymieniać. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
W takim że pytania nijak się mają do odpowiedzi, no chyba że w BD masz w odpowiedniej kolejności pytania i odpowiedzi. Tak mam w odpowiedniej kolejności i pytania i odpowiedzi. Nie jestem alfą i omegą, bo dopiero zaczynam na dobrą sprawę... Zawsze można się do czegoś przyczepić jak tylko się tego chce ![]() Ok, wracając do Twojej opcji. Wszystko niby będzie ok, ale coś mi nie gra... Wywala błędy w jednym miejscu i nie wiem jak to ugryźć :/ CODE Notice: Undefined index: ID_Pytania in C:\xampp\htdocs\EduPortal\test.php on line 46 CODE Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\EduPortal\test.php on line 46 Ten problem już mam z głowy... Dodany Z tego co wyczytałem sugeruje, że dana zmienna nie jest tablicą i na tym forum ktoś pisał żeby sprawdzić czy jest w ogóle wypełniona tym sposobem: I mi pokazuje coś takiego: CODE Array ( [7] => Array ( [0] => Array ( [ID_Odpowiedzi] => 25 [ID_Pytania] => 7 [Tresc_Odpowiedzi] => jako zbiór krotek, które w znormalizowanych bazach danych s? unikatowe i nie gra roli ich kolejno?? [Czy_prawidlowa] => 1 ) [1] => Array ( [ID_Odpowiedzi] => 26 [ID_Pytania] => 7 [Tresc_Odpowiedzi] => jako zbiór krotek, które w znormalizowanych bazach danych s? unikatowe i ich kolejno?? gra rol? [Czy_prawidlowa] => 0 ) [2] => Array ( [ID_Odpowiedzi] => 27 [ID_Pytania] => 7 [Tresc_Odpowiedzi] => jako zbiór krotek, które w znormalizowanych bazach danych s? powtarzalne i ich kolejno?? gra rol? [Czy_prawidlowa] => 0 ) [3] => Array ( [ID_Odpowiedzi] => 28 [ID_Pytania] => 7 [Tresc_Odpowiedzi] => elementy manipulacyjne modelu [Czy_prawidlowa] => 0 ) ) [8] => Array ( [0] => Array ( [ID_Odpowiedzi] => 29 [ID_Pytania] => 8 [Tresc_Odpowiedzi] => Jest bogaty i pracuje jako konsultant dla Sun Mycrosystems. [Czy_prawidlowa] => 0 ) [1] => Array ( [ID_Odpowiedzi] => 30 [ID_Pytania] => 8 [Tresc_Odpowiedzi] => Procesuje si? o prawa do wykorzystywania jego pomys?u przez podmioty komercyjne. [Czy_prawidlowa] => 0 ) [2] => Array ( [ID_Odpowiedzi] => 31 [ID_Pytania] => 8 [Tresc_Odpowiedzi] => Opracowuje nowy typ relacyjnych baz danych [Czy_prawidlowa] => 0 ) [3] => Array ( [ID_Odpowiedzi] => 32 [ID_Pytania] => 8 [Tresc_Odpowiedzi] => Nie ?yje [Czy_prawidlowa] => 1 ) ) [10] => Array ( [0] => Array ( [ID_Odpowiedzi] => 37 [ID_Pytania] => 10 [Tresc_Odpowiedzi] => ...to poprzedniczka relacyjnej bazy danych, obecnie nieu?ywana. [Czy_prawidlowa] => 0 ) [1] => Array ( [ID_Odpowiedzi] => 38 [ID_Pytania] => 10 [Tresc_Odpowiedzi] => ...znajduje si? w fazach prototypowych i nie powsta?y dotychczas rozwi?zania komercyjne. [Czy_prawidlowa] => 1 ) [2] => Array ( [ID_Odpowiedzi] => 39 [ID_Pytania] => 10 [Tresc_Odpowiedzi] => ...to zbiór obiektów, których zachowanie si?, stan oraz zwi?zki s? okre?lone zgodnie z obiektowym modelem danych [Czy_prawidlowa] => 0 ) [3] => Array ( [ID_Odpowiedzi] => 40 [ID_Pytania] => 10 [Tresc_Odpowiedzi] => ...nie istnieje [Czy_prawidlowa] => 0 ) ) ) Czyli znaczyłoby, że jest wypełniona i ID_Pytania w tej tablicy się znajduje, więc gdzie leży problem? Zapodam kod:
Ten post edytował M4rcin3z 18.01.2015, 09:23:03 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Brawo..
zamień foreach($answersPrepared['ID_Pytania'] as $answers) na foreach($answersPrepared[$question['ID_Pytania']] as $answers) |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ok działa (zaraz napiszesz, że wiesz że działa
![]() ![]() Dzięki wielkie i sorry za upierdliwość (ale tak mam, że jak czegoś nie wiem a ktoś mi podpowiada to chce wiedzieć na później jak najwięcej) ![]() PS. Kliknięte "POMÓGŁ". Nie rozpoczynając nowego tematu. Jestem zmuszony sytuacją, że proszę o pomoc ponownie tym razem z tym zliczaniem poprawnych odpowiedzi. W tabeli odpowiedzi jest pole Czy_prawidlowa (1- poprawna, 0-bledna). Mam trochę problem z rozgryzieniem jaki warunek wrzucic zeby zaczelo zliczac... Warunek w sumie mam juz w glowie tylko nie bardzo wiem jak to przelac na wersje PHP :/ Podpowie ktos? |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
To daje ze bede mial wyswietlone i liczone... A jak to ma sie do weryfikacji tego co zaznaczyl uzytkownik?
Może inaczej. Chodzi mi oto jak mogę sprawdzić czy zaznaczony radio button ma w kolumnie Czy_prawidlowa wartosc 1 czyli poprawna odpowiedzi? W takim przypaku naliczylo za to pkt dla uzytkownika. Ten post edytował M4rcin3z 20.01.2015, 14:16:38 |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Po przesłaniu odpowiedzi zbierasz ich ID z formularza, pobierasz z BD wszystkie pytania o tych ID i dalej sobie robisz co chcesz czyli możesz wyświetlić błędne odpowiedzi itd.
Natomiast jeżeli interesuje Cię tylko ilość poprawnych to
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
No ok, tylko proszę łopatologicznie jak pobrać je z formularza?
Chyba robię się coraz głupszy niż mądrzejszy... :/ |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Weź sobie jakiś kurs PHP od podstaw to staniesz się coraz mądrzejszy...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 00:47 |