Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Pobieranie pytania i odpowiedzi dla testu
niewytancze
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.03.2012

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


Tworzę prosty skrypt z testem wypisującym pytania wraz z kilkoma wariantami odpowiedzi, z czego jedna jest poprawna.

Struktura tabel w MYSQL wygląda następująco:

Tabela testy:

id
nazwa
data
czas_trwania
suma_pytan
aktywacja

----------------

Tabela pytania:

id
id_testu
tresc_pytania
ilosc_odpowiedzi

----------------

Tabela odpowiedzi:

id
id_pytania
id_testu
odpowiedz
poprawna

Problem pojawia się w momencie wypisywania pytania w z przyporządkowanymi do niego odpowiedziami.

  1. SELECT tresc_pytania, odpowiedz
  2. FROM pytania, odpowiedzi
  3. WHERE pytania.id = odpowiedzi.id_pytania
  4. AND pytania.id_testu = odpowiedzi.id_testu
  5. AND odpowiedzi.id_testu =110


Daje to wynik:

tresc_pytania odpowiedz
pytanie1 ala2
pytanie1 ala1
pytanie2 kija 1
pytanie2 kija 2
pytanie3 er4
pytanie3 er3
pytanie3 2
pytanie3 1

Oczywiście podczas wypisywania na stronie w {section}, pytanie przy każdej odpowiedzi dubluje się. Natomiast ja chciałbym uzyskać taki efekt:

1. pytanie1

odp1
odp2
odp3

2. pytanie2

itd.

Próbowałem już z joinem, grupowaniem (wypisywało tylko jedną odp. dla każdego pytania), zapytaniami zagębionymi i wieloma innymi sposobami nie osiągając zamierzanego celu.
Proszę o pomoc (IMG:style_emoticons/default/smile.gif)

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
d3ut3r
post
Post #2





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


  1. SELECT a.tresc_pytania,GROUP_CONCAT(b.odpowiedz) AS odpowiedzi FROM pytania AS a
  2. LEFT JOIN odpowiedzi AS b ON a.id=b.idp


takie zapytanie zwróci Ci:

treść pytania | odpowiedź A,odpowiedź B, odpowiedź C

później w PHP za pomocą explode możesz to rozbić do tablicy.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 18:15