![]() |
![]() ![]() |
![]() |
![]()
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 (IMG:style_emoticons/default/tongue.gif) Jak wkleić pod te radio tresci odpowiedzi, które mam w bazie? 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ę (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
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 (IMG:style_emoticons/default/haha.gif) |
|
|
![]()
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ć? (IMG:style_emoticons/default/tongue.gif) Powiedzmy, że na zaliczenie (IMG:style_emoticons/default/wink.gif)
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 (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
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ś (IMG:style_emoticons/default/dry.gif) |
|
|
![]()
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 (IMG:style_emoticons/default/wink.gif)
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 (IMG:style_emoticons/default/wink.gif) 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 (IMG:style_emoticons/default/wink.gif) ). Jeszcze tylko sprawdzenie i zliczenie ile użytkownik zaznaczył poprawnych odpowiedzi i będzie koniec. Mam nadzieję, że dam sobie z tym już sam radę (IMG:style_emoticons/default/wink.gif)
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) (IMG:style_emoticons/default/tongue.gif) 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...
|
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ale fajnie by było jakbyś mi pomógł (IMG:style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pomogłem, gotowca więcej ode mnie nie dostaniesz. I nie dla tego że jestem wredny (no bo jestem (IMG:style_emoticons/default/haha.gif) ) ale dla tego że z każdą pierdołą będziesz leciał na forum i liczył na gotowce.
To nie na tym zabawa polega. Albo chcesz być programistą i się uczyć tego, albo nie wtedy płacisz za czyjąś wiedzę. http://pl.wikibooks.org/wiki/PHP/Formularze PS. Szukanie na prawdę nie boli... Ten post edytował Pyton_000 20.01.2015, 20:12:38 |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Nie bede biegac, bo musze zrobic to max do konca czwartku i miec z glowy... Jest to dosc pilny termin, a jeszcze pare innych rzeczy mam do zrobienia :/ Dlatego jestem taki upierdliwy... Bardzo duzo juz mi pomogles i licze, ze ten ostatni raz tez pomozesz, bo w glebi duszy jestes dobrym czlowiekiem i pomocnym (troche wazeliny nikomu nie zaszkodzilo (IMG:style_emoticons/default/tongue.gif) )
A z ciekawości ile byś wziął za coś takiego? (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#24
|
|
Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Nie bede biegac, bo musze zrobic to max do konca czwartku i miec z glowy... Jest to dosc pilny termin, a jeszcze pare innych rzeczy mam do zrobienia :/ Dlatego jestem taki upierdliwy... Bardzo duzo juz mi pomogles i licze, ze ten ostatni raz tez pomozesz, bo w glebi duszy jestes dobrym czlowiekiem i pomocnym (troche wazeliny nikomu nie zaszkodzilo (IMG:style_emoticons/default/tongue.gif) ) A z ciekawości ile byś wziął za coś takiego? (IMG:style_emoticons/default/tongue.gif) Napisz to na Giełdzie ofert na forum albo na PW to nie jest miejsce na taką konwersację. A ja polecam, abyś mimo wszystko zacisnął zęby i sam sobie napisał to co chcesz, trochę więcej wiary (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Jak się siedzi nad tym pare dni i nic nie wychodzi to sie szuka pomocy... Wiara w swoje mozliwosci mnie opuscila juz pare dni temu (IMG:style_emoticons/default/tongue.gif) :/
|
|
|
![]()
Post
#26
|
|
Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Szukanie pomocy, a oczekiwanie na napisanie gotowca to dwie różne rzeczy.
Tutaj już wiele osób Ci pomogło, teraz jedynie musisz z tej pomocy skorzystać. Uwierz mi, że jakbyś okazał chociaż odrobinę dobrej woli i zaczął to robić i potem zadawał już konkretne pytania w miejscu gdzie masz problem to już dawno byś to skończył. Droga na skróty to zapłata komuś za wykonaną pracę - Giełda Ofert. |
|
|
![]()
Post
#27
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Tylko kolko sie zamyka w momencie kiedy napisalem ze nie moge dalej ruszyc i napisalem wprost co mnie boli to zostalem potraktowany jak nieuk. Nie mowie ze nikt mi nie pomogl, wrecz przeciwnie i nie napisalem ze oczekuje gotowca tylko pomocy jak z tym ruszyc, a podpowiedzi typu poczytaj manuala to troche dziwne wg mnie, bo robie wg manuala i nie idzie..
Dobra wracając do tematu głównego.. Sprawdzając, które dane przesyła $_POST wyświetla mi tylko to:
Czyli generalnie wysyła tylko ID_Pytania, które było wyświetlone, ale nie pokazuje które ID_Odpowiedzi zostało zaznaczone. Jakaś podpowiedź jak mogę sprawdzić, które konkretnie ID_Odpowiedzi zostało zaznaczone? Tak dla przypomnienia pytania są losowo generowane razem z przypisanymi do niego odpowiedziami. Ten post edytował M4rcin3z 26.01.2015, 11:22:51 |
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
no to do value dla radio wrzuć ID_odpowiedzi, wtedy zamiast 'on' będziesz miał id odpowiedzi
|
|
|
![]()
Post
#29
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem coś takiego:
echo "<input type='radio' name='Odpowiedz[{$pytanie['ID_Pytania']}] value='{$odpowiedzi['ID_Odpowiedzi']}'>{$odpowiedzi['Tresc_Odpowiedzi']}</br>"; Ale dalej wyświetla on a nie ID_Odpowiedzi :/ Albo jestem ślepy albo o czymś nie wiem (IMG:style_emoticons/default/haha.gif) Jeszcze pytanie czy dobrze rozumuje.....
W powyższym kodzie wypisuje wszystkie kolumny w tabeli Odpowiedzi, więc też powinien wypisać mi ten ID_Odpowiedzi w taki sposób jak wpisałem w value? |
|
|
![]()
Post
#30
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zauważ że są one w tablicy dodatkowoczyli
Kod array() [0] -> array(wiersz1), [1] -> array(wiersz2), [2] -> array(wiersz3) Wstaw sobie zamiast FETCH_ASSOC coś takiego: Kod PDO::FETCH_GROUP | PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC i zobacz co masz dokładnie w odpowiedzi. Wtedy powienieneśmieć tablice z kluczem z id_odpowiedzi i zawartością pozostałych kolumn. |
|
|
![]()
Post
#31
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
A tak z ciekawości muszę jeszcze coś zmodyfikować, bo to co napisałeś żebym wstawił zamiast nic nie dało... Dalej jest to samo :/
Dołożone co napisałeś i dalej jest to samo... Choć "postęp" jest w tym, że wyskakuje komunikat, że Kod Notice: Undefined index: ID_Odpowiedzi in C:\xampp\htdocs\EduPortal\bazydanych.php on line 83 i nie mam pomysłu co dalej :/
|
|
|
![]()
Post
#32
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A zobaczyłeś choć jaki wynik dostajesz z tego zapytania ?
|
|
|
![]()
Post
#33
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie miałem pisać, że po dopisaniu tego w ogóle nie wyświetla ID_Odpowiedzi..
Wyświetla coś takiego: Kod Array ( [6] => Array ( [0] => Array ( [ID_Pytania] => 6 [Tresc_Odpowiedzi] => MySQL [Czy_prawidlowa] => 0 ) [1] => Array ( [ID_Pytania] => 6 [Tresc_Odpowiedzi] => PostgreSQL [Czy_prawidlowa] => 0 ) [2] => Array ( [ID_Pytania] => 6 [Tresc_Odpowiedzi] => Oracle [Czy_prawidlowa] => 1 ) [3] => Array ( [ID_Pytania] => 6 [Tresc_Odpowiedzi] => Firebird [Czy_prawidlowa] => 0 ) ) ) A jak wyświetle $przygpytania to już pokazuje ID_Odpowiedzi jako wiersz w tablicy, ale po próbie wyświetlenia wyskakuje error, że niezidentyfikowany index :/ Jestem ciekawy co może być powodem, że nie wyszukuje też ID_Odpowiedzi skoro w zapytaniu do bazy powinny być wyświetlone wszystkie pola tabeli odpowiedzi Ten post edytował M4rcin3z 27.01.2015, 13:02:53 |
|
|
![]()
Post
#34
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#35
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Teraz to wyrzuca przy wyswietlaniu
odpowiedzi Kod Notice: Undefined offset: 2 in C:\xampp\htdocs\EduPortal\bazydanych.php on line 86 i Kod Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\EduPortal\bazydanych.php on line 84 a przy print_r($odpowiedzi) coś takiego: Kod Array ( [ID_Odpowiedzi] => 28 [Tresc_Odpowiedzi] => elementy manipulacyjne modelu [Czy_prawidlowa] => 0 ) |
|
|
![]()
Post
#36
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jeszcze raz cały kod
Ten post edytował Pyton_000 27.01.2015, 14:26:11 |
|
|
![]()
Post
#37
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Kod <?php // Rozpoczynanie sesji. session_start(); require_once('config.php'); // Jeśli zmienne sesji nie są ustawione, skrypt próbuje użyć // plików cookie. if (!isset($_SESSION['nr'])) { if (isset($_COOKIE['nr']) && isset($_COOKIE['PESEL'])) { $_SESSION['nr'] = $_COOKIE['nr']; $_SESSION['PESEL'] = $_COOKIE['PESEL']; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="style.css" /> <title>Główna strona</title> </head> <body> <div id="topDiv"> <div id="headerMainDiv"> <h3> Bazy danych </h3> </div> <div id="headerUserInfoDiv"> <tr>Zalogowany: <?php echo $_SESSION['PESEL']; ?> </tr> <tr><a href="logout.php">Wyloguj się</a></tr> </div> <div id="TestContentDiv"> <form name="formularz1" action ="result.php" method ="POST"> <?php $mysql_host = 'localhost'; $port = '3306'; $username = 'root'; $password = ''; $database = 'quiz'; try{ $pdo = new PDO('mysql:host='.$mysql_host.';dbname='.$database.';port='.$port, $username, $password ); }catch(PDOException $e){ echo 'Połączenie nie mogło zostać utworzone.<br />'; } //Losowe wybieranie pytan $sql = "SELECT * FROM pytania ORDER BY RAND() LIMIT 3;"; $sth = $pdo->prepare($sql); $sth->execute(); $pytania = $sth->fetchAll(PDO::FETCH_ASSOC); //Przygotowywanie tablicy z id_pytan $idpytania = array(); foreach ($pytania as $pytanie) { $idpytania[] = $pytanie['ID_Pytania']; } //Wyszukanie rekordow, ktore zawieraja wybrane ID_Pytania $sth = $pdo->prepare("SELECT ID_Pytania, ID_Odpowiedzi, Tresc_Odpowiedzi, Czy_prawidlowa FROM Odpowiedzi WHERE ID_Pytania IN(".implode(',', $idpytania).")"); $sth->execute(); $odpowiedzi = $sth->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC); $przygpytania = array(); //Tworzenie tablicy z odpowiedziami na wybrane pytania foreach($odpowiedzi as $odpowiedzi) { $przygpytania[$odpowiedzi['ID_Pytania']][] = $odpowiedzi; } //Tworzenie tablicy z wybranymi pytania oraz powiazanymi poprzez ID_Pytania odpowiedziami oraz ich wyswietlenie foreach ($pytania as $pytanie) { echo "<h2>{$pytanie['Tresc_Pytania']}</h2>"; foreach($przygpytania[$pytanie['ID_Pytania']] as $odpowiedzi) { echo "<input type='radio' name='Odpowiedz[{$pytanie['ID_Pytania']}] value='{$odpowiedzi['ID_Odpowiedzi']}'>{$odpowiedzi['Tresc_Odpowiedzi']}</br>"; } } echo "<input type='submit' value='Zakończ test' name='submit'/>"; echo '<pre>'; print_r($odpowiedzi); echo '</pre>'; ?> </form> </div> </div> </body> </html> całość |
|
|
![]()
Post
#38
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Masz i analizuj.
|
|
|
![]()
Post
#39
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ok przeksztalcone na moje i dziala (bo mialo dzialac (IMG:style_emoticons/default/tongue.gif) ) (IMG:style_emoticons/default/wink.gif)
Tylko teraz pytanie nastepujace. Po kliknieciu w przycisk 'zakoncz test' formularz w $_POST wysyla cos takiego Kod Array ( [answer] => Array ( [5] => 19 [1] => 2 [9] => 35 ) [submit] => ZakoĹcz test ) Jak z takiej tablicy mogę pobrać dane i je odrazu sprawdzić, które z tych zaznaczonych odpowiedzi jest poprawnych(czyli czy_prawidlowa = 1 )? /// edit Ok domyślam się, że zapytaniem: "SELECT count(ID_Odpowiedzi) FROM odpowiedzi WHERE ID_Odpowiedzi IN(19,2,35) AND czy_prawidlowa = 1;" Zliczę ile w zaznaczonych odpowiedziach jest tych prawidlowych. W IN powinny być wtedy ID_Odpowiedzi tylko nie wiem jak je tam wstawić ;/ Ten post edytował M4rcin3z 31.01.2015, 13:00:48 |
|
|
![]()
Post
#40
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
implode(',',$_POST['answers'])
|
|
|
![]()
Post
#41
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Coś mi tu nie tak poszło bo wyrzuca
Kod Catchable fatal error: Object of class PDOStatement could not be converted to string in a mam coś takiego: Kod $sth = $pdo->prepare("SELECT count(ID_Odpowiedzi) FROM odpowiedzi WHERE ID_Odpowiedzi IN (" . implode(',', $_POST['answer'])) . ") AND Czy_prawidlowa = 1"; $sth->execute(); $wynik = $sth->fetchAll(); foreach ($wynik as $wyniki) { echo $wyniki; } podpowiedz jakas? |
|
|
![]()
Post
#42
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
brak ) w prepare.
|
|
|
![]()
Post
#43
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Hula aż miło (IMG:style_emoticons/default/tongue.gif)
Tylko ostatni problem :/ Chciałbym, aby skrypt przerzucił wynik i pare innych danych do bazy tzn. mam tabele wyniki: ID_Wyniku (auto increment) ID_Testu (jest w tabeli pytania) PESEL (przechowywany w $_SESSION ['PESEL'] Wynik ($wyniki['count(ID_Odpowiedzi)']) Data (i tutaj chciałbym aby pokazała się bieżąca data DD-MM-RRRR) wstępnie zrobiłem coś takiego: Kod INSERT INTO wyniki (ID_Wyniku, ID_Testu, PESEL, Wynik, Data) VALUES ('','$ID_Testu ','$_SESSION['PESEL']','DATE()','{$wyniki['count(ID_Odpowiedzi)']}')"); Jakaś podpowiedź jak to rozegrać? Co jest źle albo jak to inaczej zrobić? |
|
|
![]()
Post
#44
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A w czym masz problem? Bo to już się zaczyna robić nawet nie śmieszne...
|
|
|
![]()
Post
#45
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z tym, że robiąc to w ten sposób:
Kod $sth = $pdo->prepare("INSERT INTO wyniki (ID_Wyniku, ID_Testu, PESEL, Wynik, Data) VALUES ('','$ID_Testu ','{$_SESSION['PESEL']}','CURDATE()','{$wyniki['count(ID_Odpowiedzi)']}');"); $sth->execute(); $wpisy = $sth->fetchAll(); dodaje wynik do bazy, ale wpisuje tylko i wyłącznie w taki sposób: '1', '0', '85091003652', '0', '0000-00-00' Czyli dodaje tylko PESEL... i może Ty wiesz czemu.... ? |
|
|
![]()
Post
#46
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Bo pozostałe zmienne nie mają wartości, masz poprzestawiane kolumny z wartościami itp.
|
|
|
![]()
Post
#47
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Wszystko zrobione ! Nie będę już truł d*** (IMG:style_emoticons/default/tongue.gif)
Na koniec chciałem tylko mega podziękować za mega pomoc i wyjaśnienie wielu rzeczy ! Wielkie dzięki Pyton_000 (IMG:style_emoticons/default/exclamation.gif) sorry za upierdliwość (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 16:14 |