Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] adaptacja testu na własne potrzeby
Forum PHP.pl > Forum > Przedszkole
misiol
Witam.
Moja przygoda z PHP rozpoczęła się niedawno, więc moje pytanie może się wydawać banalne - ale sam sobie nie mogę dać rady. Otóż postanowiłem stworzyć stronę na której będzie się znajdował prosty test składający się z kilku pytań zapisanych w bazie. Udało mi się znaleźć gotowy skrypt, niestety mam problem z jego działaniem, a raczej jego nie działaniem. Chodzi mi dokładnie o ten test - http://www.widgetmonkey.com/zip/quizv1.0.zip. Wykonałem wszystko tak jest zostało zapisane w pliku notes i mimo tego test nie działa. Żeby dokładnie przedstawić sytuację wklejam zawartość plików z tego testu:

plik config.php (oczywiście zmodyfikowałem go odpowiednio)
  1. <?php
  2. $database = &#092;"database\";
  3. $user = &#092;"user\";
  4. $pass = &#092;"haslo\";
  5. $hostname = &#092;"mysql.60free.ovh.org\";
  6. $table = &#092;"quiz\";
  7. ?>

plik contentdb.php
  1. <?php
  2. include(&#092;"config.php\");
  3.  
  4. $db = mysql_connect(&#092;"$hostname\", \"$user\",\"$pass\");
  5. mysql_select_db(&#092;"$database\",$db);
  6.  
  7. ?>

plik editquiz.php
  1. <?php
  2. &nbsp;
  3.  
  4.  
  5.  
  6. [b]Admin area - edit the quiz[/b]
  7. include(&#092;"contentdb.php\");
  8. if($submit)
  9. {
  10. $sql = &#092;"INSERT INTO $table (question, opt1, opt2, opt3, answer) VALUES ('$question','$opt1','$opt2','$opt3','$answer')\";
  11. $result = mysql_query($sql);
  12. echo &#092;"
  13.  
  14. Question added to quiz.
  15.  
  16. &#092;";
  17. include &#092;"qinsert.php\";
  18. }
  19. else if($update)
  20. {
  21. $sql = &#092;"UPDATE $table SET question='$question',opt1='$opt1',opt2='$opt2',opt3='$opt3',answer='$answer' WHERE id=$id\";
  22. $result = mysql_query($sql);
  23. echo &#092;"
  24.  
  25. The quiz has been succesfully updated.
  26.  
  27. &#092;n\";
  28. }
  29. else if($id)
  30. {
  31. $result = mysql_query(&#092;"SELECT * FROM $table WHERE id=$id\",$db);
  32. $myrow = mysql_fetch_array($result);
  33. ?>
  34.  
  35. }
  36. else
  37. {
  38. ?>
  39. }
  40. ?>
  41. <a href="\"\"\"editquizlist.php\"\"\"">Back to list of quiz questions

plik editquizlist.php
  1. <?php
  2. &nbsp;
  3.  
  4.  
  5.  
  6. [b]Admin area - edit the quiz[/b]
  7.  
  8.  
  9.  
  10.   
  11.  
  12.         
  13. include(&#092;"contentdb.php\");
  14.  
  15. $result = mysql_query(&#092;"SELECT id, question FROM $table ORDER BY id\",$db);
  16.  
  17. echo &#092;"\";
  18.  
  19. while ($row = mysql_fetch_array($result)) 
  20. {
  21.         $id = $row[&#092;"id\"]; 
  22.     $question = $row[&#092;"question\"]; 
  23.     if ($alternate == &#092;"1\") { 
  24.     $color = &#092;"#ffffff\"; 
  25.     $alternate = &#092;"2\"; 
  26.     } 
  27.     else { 
  28.     $color = &#092;"#efefef\"; 
  29.     $alternate = &#092;"1\"; 
  30.     } 
  31.     echo &#092;"$id:$question[ <a href="\"\"editquiz.php?id=$id\"\"">edit ][ <a href="\"\"deletequiz.php?id=$id\"" onClick="\"\"return\" confirm('Are=\"\" you=\"\" sure?')\"\"=\"\"">delete ]\"; 
  32. } 
  33. echo &#092;"\";
  34. ?>
  35.         
  36.  
  37.         
  38.  
  39.         <a href="\"\"\"editquiz.php\"\"\"">Add a new question to the quiz
  40.     
  41.   
  42.   
  43.  
  44.   
  45.  
  46. <a href="\"\"\"quizinfo.php\"\"\"">See the full quiz table

plik quiz1.php
  1. <?php
  2. //copyright widgetmonkey.com 2001
  3.  
  4. include(&#092;"contentdb.php\");
  5.  
  6. $display = mysql_query(&#092;"SELECT * FROM $table ORDER BY id\",$db);
  7.     if (!$submit) {
  8.  
  9.  
  10.     echo &#092;"\";
  11.     echo &#092;"\";
  12.  
  13.     while ($row = mysql_fetch_array($display)) {
  14.  
  15.     $id = $row[&#092;"id\"];
  16.     $question = $row[&#092;"question\"];
  17.     $opt1 = $row[&#092;"opt1\"];
  18.     $opt2 = $row[&#092;"opt2\"];
  19.     $opt3 = $row[&#092;"opt3\"];
  20.     $answer = $row[&#092;"answer\"];
  21.  
  22.     echo &#092;"
  23. [b]$question[/b]&#092;";
  24.     echo &#092;"$opt1 $opt2 $opt3 \";
  25.  
  26.     }
  27.  
  28.     echo &#092;"\";
  29.     echo &#092;"\";
  30.     echo &#092;"\";
  31.  
  32. }
  33.  
  34. elseif ($submit) 
  35.  
  36. {
  37.  
  38.     $score = 0;
  39.     $total = mysql_num_rows($display);
  40.         while ($result = mysql_fetch_array($display)) 
  41.                         {
  42.                     $answer = $result[&#092;"answer\"];
  43.             $q = $result[&#092;"q\"];
  44.                     if ($q == $answer) 
  45.         {
  46.         $score++; 
  47.         }
  48.         }
  49.         echo &#092;"
  50.  
  51. [b]You scored $score out of $total[/b]&#092;";
  52.     echo &#092;"\";
  53.         if   ($score == $total) {
  54.     echo &#092;"Congratulations! You got every question right!\";
  55.     }
  56.     elseif ($score/$total < 0.34) {
  57.     echo &#092;"Oh dear. Not the best score, but don't worry, it's only a quiz.\";
  58.     }
  59.     elseif ($score/$total > 0.67) {
  60.     echo &#092;"Well done! You certainly know your stuff.\";
  61.     }
  62.     else {
  63.     echo &#092;"Not bad - but there were a few that caught you out!\";
  64.     }
  65.  
  66. echo &#092;"
  67.  
  68. &#092;";
  69.  
  70. echo &#092;"
  71.  
  72. Here are the answers:&#092;";
  73.  
  74. echo &#092;"\";
  75. $display = mysql_query(&#092;"SELECT * FROM $table ORDER BY id\",$db);
  76. while ($row = mysql_fetch_array($display)) {
  77.  
  78. $question = $row[&#092;"question\"];
  79. $answer = $row[&#092;"answer\"];
  80. $q = $row[&#092;"q\"];
  81.  
  82. echo &#092;"
  83. $question&#092;";
  84.  
  85. if ($q == $answer) 
  86.         {
  87.         echo &#092;"&raquo;you answered ${$q}, which is correct\";
  88.         }
  89. elseif ($q == &#092;"\") {
  90. echo &#092;"&raquo;you didn't select an answer. The answer is $answer\";
  91. }
  92. else {
  93. echo &#092;"&raquo;you answered ${$q}. The answer is $answer\";
  94. }
  95.  
  96. }
  97. echo &#092;"\";
  98.  
  99.  
  100.  
  101. }
  102.  
  103. ?>

Oczywiscie odpowiednia tabela o nazwie quiz została utworzona. Problemy są tego typu. Chcąc dodać pytanie poprzez editquiz.php nic się nie dodaje. Dodatkowo po odpaleniu editquizlist.php pojawiają się dwa błędy:
Kod
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/a/m/i/amigoksg/www/quiz/editquizlist.php on line 13
Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/a/m/i/amigoksg/www/quiz/editquizlist.php on line 16

Probowałem takze ręcznie poprzez phpmyadmin dodać pytania do tabeli quiz. Po dodaniu ich i odpaleniu quiz1.php występują następujące błędy:
Kod
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/a/m/i/amigoksg/www/quiz/quiz1.php on line 7
Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/a/m/i/amigoksg/www/quiz/quiz1.php on line 15
Wydaje mi się, że funkcje mysql_query i mysql_fetch_array są dobrze użyte a jednak pojawiają się te w/w błędy. Dlatego pytam tutaj ,bo już nie wiem co może być źle. Pozdrawiam.
Sabistik
Proszę o poprawę tytułu tematu na zgodny z regulaminem działu przedszkole inaczej zostanie zamknięty.
misiol
Nikt nie jest w stanie mi pomóc?
PawelC
quiz1.php
  1. <?php
  2.  
  3. //copyright widgetmonkey.com 2001
  4.  
  5. include("contentdb.php");
  6. $zrob="SELECT * FROM $table ORDER BY id,$db";
  7. $display = mysql_query($zrob);
  8.  
  9. if (!$submit) {
  10.  
  11.  
  12. echo "<form method=post action=$PHP_SELF>";
  13. echo "<table border=0>";
  14.  
  15. while ($row = mysql_fetch_array($display)) {
  16.  
  17. $id = $row['id'];
  18. $question = $row['question'];
  19. $opt1 = $row['opt1'];
  20. $opt2 = $row['opt2'];
  21. $opt3 = $row['opt3'];
  22. $answer = $row['answer'];
  23.  
  24. echo "<tr><td colspan=3><br><b>$question</b></td></tr>";
  25. echo "<tr><td>$opt1 <input type=radio name=q$id value=\"$opt1\"></td><td>$opt2 <input type=radio name=q$id value=\"$opt2\"></td><td>$opt3 <input type=radio name=q$id value=\"$opt3\"></td></tr>";
  26.  
  27. }
  28.  
  29. echo "</table>";
  30. echo "<input type='submit' value='See how you did' name='submit'>";
  31. echo "</form>";
  32.  
  33. }
  34.  
  35. elseif ($submit) 
  36.  
  37. {
  38.  
  39. $score = 0;
  40. $total = mysql_num_rows($display);
  41. while ($result = mysql_fetch_array($display)) 
  42.  
  43.  
  44. {
  45.  
  46. $answer = $result["answer"];
  47. $q = $result["q"];
  48.  
  49. if ($$q == $answer) 
  50. {
  51. $score++; 
  52. }
  53.  
  54. }
  55.  
  56. echo "<p align=center><b>You scored $score out of $total</b></p>";
  57. echo "<p>";
  58.  
  59. if  ($score == $total) {
  60. echo "Congratulations! You got every question right!";
  61. }
  62. elseif ($score/$total < 0.34) {
  63. echo "Oh dear. Not the best score, but don't worry, it's only a quiz.";
  64. }
  65. elseif ($score/$total > 0.67) {
  66. echo "Well done! You certainly know your stuff.";
  67. }
  68. else {
  69. echo "Not bad - but there were a few that caught you out!";
  70. }
  71.  
  72. echo "</p>";
  73.  
  74. echo "<p>Here are the answers:";
  75.  
  76. echo "<table border=0>";
  77. $display = mysql_query("SELECT * FROM $table ORDER BY id",$db);
  78. while ($row = mysql_fetch_array($display)) {
  79.  
  80. $question = $row["question"];
  81. $answer = $row["answer"];
  82. $q = $row["q"];
  83.  
  84. echo "<tr><td><br>$question</td></tr>";
  85.  
  86. if ($$q == $answer) 
  87. {
  88. echo "<tr><td>&raquo;you answered ${$q}, which is correct</td></tr>";
  89. }
  90. elseif ($$q == "") {
  91. echo "<tr><td>&raquo;you didn't select an answer. The answer is $answer</td></tr>";
  92. }
  93. else {
  94. echo "<tr><td>&raquo;you answered ${$q}. The answer is $answer</td></tr>";
  95. }
  96.  
  97. }
  98. echo "</table></p>";
  99.  
  100.  
  101.  
  102. }
  103.  
  104. ?>

editquizlist.php
  1. <HTML>
  2. <link rel="stylesheet" href="quiz.css" type="text/css">
  3. <body><center>
  4. <P>&nbsp;</P>
  5.  
  6. <B>Admin area - edit the quiz</B>
  7. <br><br>
  8. <table width="300" border="0" cellspacing="0" cellpadding="0">
  9.  
  10. <?php
  11.  
  12. include("contentdb.php");
  13. $zrob="SELECT id,question FROM $table ORDER BY id,$db";
  14. $result=mysql_query($add) or die(mysql_error());
  15.  
  16. echo '<table>';
  17.  
  18. while ($row = mysql_fetch_array($result)) 
  19. {
  20.  
  21. $id = $row["id"]; 
  22. $question = $row["question"]; 
  23. if ($alternate == "1") { 
  24. $color = "#ffffff"; 
  25. $alternate = "2"; 
  26. } 
  27. else { 
  28. $color = "#efefef"; 
  29. $alternate = "1"; 
  30. } 
  31. echo "<tr bgcolor=$color><td>$id:</td><td>$question</td><td>[ <a href='editquiz.php?id=$id'>edit</a> ]</td><td>[ <a href='deletequiz.php?id=$id' onClick=\"return confirm('Are you sure?')\">delete</a> ]</td></tr>"; 
  32. } 
  33. echo "</table>";
  34. ?>
  35. <br>
  36. <br>
  37. <a href="editquiz.php">Add a new question to the quiz</a></td>
  38. </tr>
  39. </table>
  40. <br>
  41. <br>
  42. <a href="quizinfo.php">See the full quiz table</a>
  43. </center>
  44. </body>
  45. </HTML>

Niema żadnych błędów biggrin.gif
misiol
A jednak jakiś problem musi być bo skrypty nie działają.
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.