![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Siemnko
Mam problem z napisaniem skryptu php.Robie taki programik do tworzenia testów i ich rozwiązywania.Troche się już w tym pogubiłem bo musze napisać program do tworzenia testów wielokrotnego wyboru. Problem polega na tym, że nie bardzo wiem jak napisać taki programik. Potrafie dodawać pytania do bazy danych ale mam problem z dodawaniem odpowiedzi do tego pytania. Chodzi o to że nie wiem jak przypisać dwie lub więcej odpowiedzi do tego pytania i zapisać je w bazie(w tym wszystkie mogą być prawidłowe). Jak macie jakieś propozycje to podeślijcie. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Propozycja tabeli odpowiedzi:
pola: id, id_pytania, tresc_odpowiedzi, poprawnosc. No i dodajesz odpowiedzi, ile tylko chcesz, a to, czy odpowiedz jest poprawna czy nie zalatwia ci pole poprawnosc (0 - niepoprawna lub 1 - poprawna). -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
No tak...ale jak później będe już tworzył formularz do rozwiązywania testów to w jaki sposób mam przypisać do pytania odpowiedzi?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:4a5037bd9d]SELECT * FROM odpowiedzi WHERE id_pytania = $id_pytania[/sql:1:4a5037bd9d]
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze jedno, wiesz może w jaki sposób wyświetlić w formularzu wszystkie odpowiedzi do danego pytania(niezależnie od tego czy są poprawne). Chodzi o to że chcę stworzyć formularz z polami wyboru odpowiewdzi.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
No to napisałem Ci wyżej, jak wyszukać wszystkie odpowiedzi do danego pytania. Później tworzysz pola typu checkbox, przypisując im id odpowiedzi i treść odpowiedzi. Przy sprawdzaniu zaś, sprwadzasz tylko, czy dana odpowiedź ma poprawność 0 czy 1. I wszystko.
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Aha...
A wiesz może jak zaimportować pytania i odpowiedzi z pliku txt.? Czy wogle jest taka możliwość? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście, że jest. Sposób importu zależy tylko od budowy takiego pliku.
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To fajnie.
A masz może jakiś pomysł? |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
8O Myślałem, że ty masz to na plikach. Ale jeśli szukasz rozwiązania: pliki czy baza, to zdecydowanie polecam bazę. A rozwiązań poszukaj sam
![]() -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Słuchaj możesz podrzucić mi jescze propozycje tabeli pytania?
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
id, tresc może jeszcze jakaś data_dodania.
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Pojawił się jeszcze jeden problem...
Podczas dodawania pytania i odpowiedzi do tego pytania jako wartość id_pytania za każdym razem wstawia mi wartość 0. Nie bardzo wiem dlaczego tak się dzieje. Nie wiem jak napisać skrypt żeby w tabeli odpowiedzi było coś takiego: id id_pytania odpowiedz poprawnosc 1 50 co kolwiek 1 2 50 co kolwiek 0 3 50 co kolwiek 1 4 50 co kolwiek 1 5 51 co kolwiek 0 6 51 co kolwiek 1 i tak dalej... Czekam na jakąś propozycje. |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%) ![]() ![]() |
Pole 'id_pytania' powinno być 'AUTO_INCREMENT'. Wtedy w pole wpisujes 'NULL', a ono automatycznie dodaje o jeden większą od aktualnie zapisanej.
-------------------- Don't worry, be happy!
Gadu-Gadu: 1687784 Darmowe komponenty na stronę WWW - licznik księga gości shoutbox chat kalendarz data godzina imieniny IP host przeglądarka odwiedzającego ankieta sonda |
|
|
![]()
Post
#15
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pole 'id_pytania' powinno być 'AUTO_INCREMENT'. Wtedy w pole wpisujes 'NULL', a ono automatycznie dodaje o jeden większą od aktualnie zapisanej.
I co wtedy uzyskasz?... Przemyśl to, mówimy o tabeli odpowiedzi. A co do problemu z dodawaniem id_pytania, pokaż fragment skryptu, którym to dodajesz, bo tak to nie bardzo wiem co może być nie tak. -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
tak wygląda skrypt dodawania odpowiedzi:[php:1:00c8c782c6]<?php
$db_name = "baza"; $con = mysql_connect("localhost") or die("Blad połączenia"); $db = mysql_select_db($db_name, $con) or die("Otwarcie tabeli"); $sql = "insert into Odpowiedzi values('null','$ID_pyt','$Odpowiedz')"; $result = mysql_query($sql, $con) or die("Polaczenie z baza nie udalo sie"); echo "Dane zostały zapisane do bazy"; echo "<form action=dodaj_pytanie.html><input type=submit value=Powrot></form>"; a tak tabela odpowiedzi: [sql:1:00c8c782c6] CREATE TABLE Odpowiedzi( ID_odpowiedzi int(5) unsigned NOT NULL auto_increment, ID_pyt int(5) NOT NULL, Odpowiedz varchar(35) NOT NULL, PRIMARY KEY (ID_odpowiedzi), FOREIGN KEY (ID_pyt) REFERENCES Pytania(ID_pytania) ON DELETE CASCADE ) TYPE=InnoDB;[/sql:1:00c8c782c6][/code] ?>[/php:1:00c8c782c6] |
|
|
![]()
Post
#17
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
A $ID_pyt jak odczytujesz? Bo czuję, że z tym jest właśnie problem.
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Do tabeli odpowiedzi dodałem jeszcze, tak jak pisałeś rekord poprawnosc który zawiera wartość odpowiedzi (0-niepoprawna 1-poprawna).
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
ID_pyt to jest klucz obcy, za pomocą którego powiązałem tabele pytania z tabelą odpowiedzi.
Co bym nie wstawił to i tak za każdym razem wpisuje mi do tabeli 0. Właśnie nie bardzo wiem jak to zmienić. |
|
|
![]()
Post
#20
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Jasne, tylko jak i skąd pobierasz wartość, którą przypisujesz zmiennej $ID_pyt, którą to zmienną wstawiasz później do inserta?
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 07:35 |