Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]jak zmodyfikowac kod aby kazde pytanie bylo na nowej stronie
Forum PHP.pl > Forum > Przedszkole
gregov0
witam moze ktos mi pomoc chce aby kazde pytanie w tescie bylo wyswietlane na osobnej stronie czyli po udzieleniu odpowiedzi na jedno pyt pokazywałosie nastepne a po wyczerpaniu limitu pytan automatyczne pojawial sie wynik.
oto kody

quiz.php
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4.  
  5. <meta name="Description" content="Witryna e-learningowa" />
  6. <meta name="Keywords" content="," />
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8; utf-8; "/>
  8. <meta http-equiv="content-language" content="pl">
  9. <meta name="Distribution" content="Global" />
  10. <meta name="Author" content="grzegorzw" />
  11. <meta name="Robots" content="index,follow" />
  12.  
  13.  
  14.  
  15. <title>test</title>
  16. </head>
  17.  
  18. <body>
  19.  
  20.  
  21. <?php
  22. include ("db.php");
  23.  
  24.  
  25. $wynik = mysql_query("select * from quiz ORDER BY RAND() LIMIT 4;");
  26. <div style = "font-size: 20px ; color:blue;text-align: center;">Test "Elektroniczny obieg dokumentów"</br> Powodzenia :)</div></br>';
  27. if (mysql_num_rows ($wynik)>0)
  28. {
  29. $i=1;
  30. echo '<form ENCTYPE="multipart/form-data" action="wynik.php" method="post" target="">';
  31. echo '<INPUT TYPE="hidden" name="id" value='.$id.'>';
  32. while($pytanie = mysql_fetch_array($wynik))
  33. {
  34. echo '<font face="Arial" size="3">'.$i.'.</font>';
  35. echo '<font face="Arial" size="3">'.$pytanie['pyt'].'</font><br>';
  36. echo '<font face="Arial" size="2"><input type="radio" name=p'.$pytanie['id'].' value="a" />'.$pytanie['odpa'].'<br></font>';
  37. echo '<font face="Arial" size="2"><input type="radio" name=p'.$pytanie['id'].' value="b" />'.$pytanie['odpb'].'<br></font>';
  38. echo '<font face="Arial" size="2"><input type="radio" name=p'.$pytanie['id'].' value="c" />'.$pytanie['odpc'].'<br></font>';
  39. echo '<font face="Arial" size="2"><input type="radio" name=p'.$pytanie['id'].' value="d" />'.$pytanie['odpd'].'<br></font>';
  40. echo '<br><hr>';
  41. $i++;
  42. }
  43. echo '<INPUT class=normalne TYPE="submit" VALUE="ZAKOŃCZ">';
  44. echo '</form>';
  45. }
  46.  
  47. ?>
  48. </body>
  49. </html>

wynik.php
  1. <?php
  2. session_start(); // rozpoczęcie sesji
  3. ?>
  4. <?php
  5. include ("db.php");
  6.  
  7. <html>
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  10.  
  11. </head>
  12. <body>';
  13.  
  14. reset ($_POST);
  15. $w=0;
  16.  
  17. while (list ($key, $val) = each ($_POST))
  18. {
  19. if (substr($key,0,1)=='p')
  20. {
  21. $wynik = mysql_query('select * from quiz where odppraw="'.$val.'" and id='.substr($key,1,6).';');
  22.  
  23. if (mysql_num_rows ($wynik)==1)
  24. {
  25. $w++;
  26. }
  27.  
  28. }
  29.  
  30. }
  31. echo '<br>
  32. <div style="font-size: 19px; font-weight: normal; padding-top: 10px; color: green;text-align: center;">
  33. Jestes zalogowany jako: ' .$_SESSION['login'].'</br>
  34. Twoja liczba poprawnych odpowiedzi to: '.$w.'
  35. </div> ';
  36.  
  37.  
  38. if ($w>=0) {
  39. $k5 = "Ocena bardzo dobra";
  40. $k4 = "Ocena dobra";
  41. $k3 = "Ocena dostateczna";
  42. $k2 = "Ocena dopuszczajaca!";
  43. $k1 = "Ocena niedostateczna";
  44. $ilosc=4;
  45. $srednia = sprintf("%2d",($w/$ilosc)*100);
  46. echo '
  47. <div style="font-size: 19px; font-weight: normal; padding-top: 10px; color: green;text-align: center;">
  48. Zaliczone '.$srednia.' procent testu.<p></font>
  49. </div>';
  50. if ($srednia<25) echo '<div style ="text-align: center;color: red;font-size: 18px;">'.$k1.'</div>';
  51. if ($srednia>=25 && $srednia<50) echo '<div style ="text-align: center;color: red;font-size: 18px;">'.$k2.'</div>';
  52. if ($srednia>=50 && $srednia<75) echo '<div style ="text-align: center;color: red;font-size: 18px;">'.$k3.'</div>';
  53. if ($srednia>=75 && $srednia<99) echo '<div style ="text-align: center;color: red;font-size: 18px;">'.$k4.'</div>';
  54. if ($srednia==100) echo '<div style ="text-align: center;color: red;font-size: 18px;">'.$k5.'</div>';
  55.  
  56.  
  57. }
  58. if (isset($_SESSION['login']))
  59. $login = $_SESSION['login'];
  60.  
  61. mysql_query("UPDATE uzytkownik SET wynik=".$w.",srednia=".$srednia.",data= NOW() where login = \"".$_SESSION['login']."\" LIMIT 1") or die(mysql_error());
  62.  
  63.  
  64.  
  65.  
  66. echo '</body></html>';
  67. ?>
  68. <center>
  69. <form>
  70. <input type=button value="Zamknij okno" onClick="java script:window.close();">
  71. </form>
  72.  
  73. </center>
Pawel_W
w zapytaniu masz pobieranie losowego pytania, musisz się zdecydować, czy ma tak pozostać (wersja trudniejsza do zrealizowania) czy może lepiej brać po prostu kolejne pytanie smile.gif

wersja pierwsza:
musisz przekazywać id pytań, na które użytkownik już odpowiedział, a potem skonstruować zapytanie z klauzulą
  1. WHERE id_pytania NOT IN(lista_pytan_ktore_byly)
i tak dopóki nie zwróci Ci żadnego pytania

wersja druga:
przekazujesz sam id pytania, a następnie bierzesz kolejny rekord z bazy danych
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.