Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie zmiennej w pętli
KierowcaTaczki
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 2.12.2020

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


Witam, przychodzę do was z troszkę dziwnym pytaniem.
Mianowicie chciałbym stworzyć zmienną w php, która ma w sobie inną zmienną (lub jest zmieniana przy każdym wykonaniu pętli)
Przykład:

  1. $x = 1;
  2. do {
  3. $zmienna$x = $row["correct"]
  4. } while ($x <= 5);
  5.  
  6. echo "Zmienna z bazy #1: $zmienna1";
  7. echo "Zmienna z bazy #2: $zmienna2";
  8. echo "Zmienna z bazy #3: $zmienna3";
  9. echo "Zmienna z bazy #4: $zmienna4";
  10. echo "Zmienna z bazy #5: $zmienna5";


Output:
Zmienna z bazy #1: test1
Zmienna z bazy #2: test2
Zmienna z bazy #3: test3
Zmienna z bazy #4: test4
Zmienna z bazy #5: test5

Nie umiem tego inaczej wytłumaczyć, ale mam nadzieję, że każdy zrozumie.
Teraz pytanie - czy coś takiego jest możliwe do stworzenia w php?

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





Grupa: Zarejestrowani
Postów: 56
Pomógł: 9
Dołączył: 28.04.2010

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


Spróbuj tak:
  1. <form action="result.php" method="post" id="quiz">
  2.  
  3. <?php
  4. $servername = "localhost";
  5. $username = "user";
  6. $password = "pass";
  7. $dbname = "db";
  8.  
  9.  
  10. $x = 1;
  11. /* Ile pytań wybrać z bazy */
  12. $limit = 5;
  13. /* Przechowywanie poprawnych odp w tym pliku zapewne jest zbędne */
  14. $correctAnswers = [];
  15.  
  16.  
  17. $conn = new mysqli($servername, $username, $password, $dbname);
  18. if ($conn->connect_error) {
  19. die("Connection failed: " . $conn->connect_error);
  20. }
  21.  
  22. $sql = "SELECT * FROM pelnalistapytanx WHERE 1 ORDER BY RAND() LIMIT $limit";
  23. $result = $conn->query($sql);
  24.  
  25. if ($result->num_rows > 0) {
  26. while($row = $result->fetch_assoc()) {
  27.  
  28. echo "<h2>(#".$row["ID"].") " .$row["Pytanie"]. "</h2>";
  29.  
  30. if($row["img"]!="0") {
  31. echo "<div class='one_question_quiz--img'>";
  32. echo "<img src='/src/img/quizy/".$row["img"].".jpg'>";
  33. echo "</div>";
  34. }
  35.  
  36. echo "<div class=''>";
  37. echo "<div>";
  38. echo "<input type='radio' name='questions[{$x}][answer]' id='question-".$x."-answers-A' value='A' />";
  39. echo "<label for='question-".$x."-answers-A'><b>A. </b>".$row["odpa"]."</label>";
  40. echo "</div>";
  41.  
  42. echo "<div>";
  43. echo "<input type='radio' name='questions[{$x}][answer]' id='question-".$x."-answers-B' value='B' />";
  44. echo "<label for='question-".$x."-answers-B'><b>B. </b>".$row["odpb"]."</label>";
  45. echo "</div>";
  46.  
  47. echo "<div>";
  48. echo "<input type='radio' name='questions[{$x}][answer]' id='question-".$x."-answers-C' value='C' />";
  49. echo "<label for='question-".$x."-answers-C'><b>C. </b>".$row["odpc"]."</label>";
  50. echo "</div>";
  51.  
  52. echo "<div>";
  53. echo "<input type='radio' name='questions[{$x}][answer]' id='question-".$x."-answers-D' value='D' />";
  54. echo "<label for='question-".$x."-answers-D'><b>D. </b>".$row["odpd"]."</label>";
  55. echo "</div>";
  56. echo "<input type='hidden' name='questions[{$x}][id]' value='{$row['id']}'>";
  57.  
  58. echo "</div>";
  59. $x++;
  60. }
  61. }
  62. $conn->close();
  63.  
  64.  
  65. ?>
  66.  
  67. <input type="submit" value="Submit" class="submitbtn" />
  68.  
  69. </form>


result.php
  1. <?php
  2.  
  3. echo "<PRE>";
  4. print_r($_POST);
  5. echo "</PRE>";
  6.  
  7. /* Możesz to zapętlić */
  8. $answers = isset($_POST['questions']) ? $_POST['questions'] : [];
  9.  
  10. foreach($answers as $answer){
  11.  
  12. // jakaś czynność np. wybranie z bazy pytania itd.
  13.  
  14. }
  15.  
  16. ?>


Rozumiem, że chcesz po wypełnieniu quizu sprawdzić czy odpowiedź jest poprawna więc musisz połączyć w results.php na nowo z bazą i porównać przesłane wyniki.

Ten post edytował gornik 3.09.2021, 18:29:17
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: 10.10.2025 - 21:23