Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Konkurs: pytania i odpowiedzi - różna ilość
Forum PHP.pl > Forum > PHP
vieri_pl
Witam. Dawno nie prosiłęm o pomoc, lecz teraz po prostu musze bo już mnie głowa od tego problemu boli. Więc zaczne. Tworzę moduł konursów dla osoby x. Ma tam być możliwość tworzenia konkursów ale za każdym razem z inną liczbą pytań i odpowiedzi.
Pytania do bazy dodaje w ten sposób:

pytanie1 ?; pytanie2 ?; pytanie3 ?

Później rozbijam to na części:

  1. <?php
  2.  
  3. $pytania = explode(";", $pyt);
  4. echo $pytania[0];
  5. echo $pytania[1];
  6. echo $pytania[2];
  7.  
  8. ?>


^ No i tu pierwszy problem. Za każdym razem jest inna ilośc odpowiedzi czyli polecenie

  1. <?php
  2.  
  3. $pytania = explode(";", $pyt);
  4.  
  5. ?>

Mam dać to do pętli ?

i drugi bardziej poważny problem sad.gif Muszę jeszcze mieć odpowiedzi do tego w formie checkboxów.

Czyli miało by to wyglądać tak:

Pytanie 1 ?

Tu odp 1 do pyt 1
Tu odp 2 do pyt 1

Pytanie 2?

Tu odp 1 do pyt 2
Tu odp 2 do pyt 2

Pytanie 3?

Tu odp 1 do pyt 3
Tu odp 2 do pyt 3

No jak mam wyswietlic pod każdym pytaniem odpowiedz z checkboxem o odpowiednim value czyli a, b, c bo checki chciałem nazywać a, b, c ,d itd.
A gdy będe to odbierał wrzucał bym to do bazy w takiej postaci:
a;a;b czyli to oznaczałoby że ktoś zaznaczył odpowiedzi kolejna 1-szą,1-szą i drugą.

Proszę o pomoc. Mam po prostu zrobić moduł konkursów w ktorym zawsze może być inna ilość opdowiedzi i pytań. A może ktoś ma lepsze pomysły ?
Hacker
tabela pytania z kluczem obcym konkurs_id i poprawna_id
tabela konkursy z tytułem konkursu i ewentualnie innymi danymi
tabela odpowiedzi z kluczem obcym pytania_id
dajesz w checkbox-ach value="odpowiedz['id']" a name pytanie id
^bmb
Witam!

Nie do konca wiem jaki konkretnie masz zamysł ale wydaje mi się że przede wszystkim korektę powinieneś zacząć od struktury bazy danych.

Ja osobiście zrobiłbym np DANE_KONKURS:
- id(klucz primary auto increment)
- type ( tu wpisujesz czy PYTANIE , czy ODPOWIEDZ)
- parent ( id konkursu do ktorego nalezy)
- status ( 0-odp prawidlowa 1- odp nieprawidlowa)


To tak na szybko ale wydaje mi się że to by znacznie ułatwiło sprawę
Odpowiednim SELECTEM wybierasz kolejne pytania danego konkursu, dla kazdego pytania wyszukujesz odpowiedzi i masz w kolumnie status czy jest ona poprawna czy nie wiec mozesz ustawiac wartosci checked checkboxow.

Mam nadzieję że pomogłem
--
pozdrawiam
^bmb
vieri_pl
Oki to mam tabele:

konkursy:

id - wiadomo
tytul - Konkurs kolorowych kredek
opis - Opisik konkursu
obrazek - obrazek do konkrsu
aktywny - czy konkurs jest jeszcze aktywny (domyślnie 1 czyli aktywny)

pytania:

id - wiadomo
id_k - do ktorego konkursu pytanie
pytanie - Np. Jaki kolor ma kredka id.a2023 ? biggrin.gif

odpowiedzi:

id - wiadomo
id-pyt - id pytania

Taka struktura bazy gra ? No ale ja mam problem z wyświetlaniem tongue.gif Wyswietlam info:

(Pomine wyświetlanie informacji o konkursie takich jak tytuł etc.)

Odp i pyt.

  1. <?php
  2.  
  3. $pytam = "SELECT * FROM pytania WHERE id_k='1'";
  4.  
  5.  $wynik = mysql_query($pytam);
  6.  while($wiersz = mysql_fetch_array($wynik))
  7. {
  8. $id = $wiersz["id"];
  9. $pytanie = $wiersz["pytanie"];
  10.  echo' '.$pytanie.''
  11.  
  12.  // no i jak tu wyswietlic odpowiedzi razem z checkbox-ami do tego pytania z odpowiednim value ?
  13.  
  14. ?>


PS: Wiem że to jest banalne mam dziś zły dzień sad.gif Dawno nic tak mnie nie dobiło :/
Hacker
Taka struktura DB nie gra
konkursy:

id - wiadomo
tytul - Konkurs kolorowych kredek
opis - Opisik konkursu
obrazek - obrazek do konkrsu
aktywny - czy konkurs jest jeszcze aktywny (domyślnie 1 czyli aktywny)

pytania:

id - wiadomo
id_k - do ktorego konkursu pytanie
pytanie - Np. Jaki kolor ma kredka id.a2023 ?
poprawna_id - Np. 2550

odpowiedzi:

id - wiadomo
id_pyt - id pytania
odp - ma kolor kredki id.a2023
  1. <?php
  2. $pytam = "SELECT p.id, p.pytanie, o.id as oid, o.odp FROM pytania as p LEFT JOIN odpowiedzi as o ON(o.id_pyt=p.id) WHERE id_k='1' ORDER BY p.id";
  3.  
  4.  $wynik = mysql_query($pytam);
  5.  while($wiersz = mysql_fetch_array($wynik))
  6. {
  7. $id = $wiersz["id"];
  8. $pytanie = $wiersz["pytanie"];
  9.  if (!$temp = $id)
  10.  {
  11.  echo ' '.$pytanie.'';
  12.  }
  13. echo '<input type="checkbox" name="'.$id.' value="'.$wiersz['oid'].'""> '.$wiersz['odp'];
  14.  
  15. ?>
vieri_pl
Dzienks Hacker smile.gif Faktycznie było to proste coś mi mózg wtedy nie pracował :/ Dostosowałem sobie to do swich potrzeb i już wszystko gra smile.gif

Pozdrawiam
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.