Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [MySQL][PHP] kolejne zapytanie z bazy po przesłaniu formularza

Napisany przez: dentopolis 17.11.2019, 11:15:56

mam skrypt pytań i odpowiedzi. na początku wyświetla pierwsze pytanie, jak zrobić, żeby po kliknięciu przycisku (obojętne którego), wyświetlił kolejne pytanie?
chcę stworzyć możliwość wyboru kolejności np. random, asc,desc, trudne itd.
http://dentopolis.org/pytajnik

  1. <?php
  2. $servername = "#################";
  3. $username = ""#################";";
  4. $password = ""#################";";
  5. $dbname = ""#################";";
  6.  
  7. $conn = new mysqli($servername, $username, $password, $dbname);
  8.  
  9. mysqli_set_charset( $conn, 'utf8' );
  10. if ($conn->connect_error) {
  11. http://www.php.net/die("Connection failed: " . $conn->connect_error);
  12. }
  13.  
  14. $sql = "SELECT * FROM `pytajnik_pytania` INNER JOIN `pytajnik_odpowiedzi`";
  15. $result = $conn->query($sql);
  16.  
  17. if ($result->num_rows > 0) {
  18. while($row = $result->fetch_assoc()) {
  19.  
  20. $questionid = $row['id'];
  21. $question = $row['question'];
  22. $answer = $row['answer'];
  23.  
  24. http://www.php.net/echo "#";
  25. http://www.php.net/echo $questionid;
  26.  
  27. $user="1";
  28. http://www.php.net/echo "uczeń:";
  29. http://www.php.net/echo $user;
  30.  
  31. }
  32.  
  33. http://www.php.net/echo "<hr/>";
  34. http://www.php.net/echo "<div class='row' style='height:150px;'>";
  35. http://www.php.net/echo "<div class='col'>";
  36. http://www.php.net/echo $question;
  37. http://www.php.net/echo "</div>";
  38. http://www.php.net/echo "<div class='col'><div id='answer'>";
  39. http://www.php.net/echo $answer;
  40. http://www.php.net/echo "</div></div>";
  41. http://www.php.net/echo "</div>";
  42. } else {
  43.  
  44. }
  45.  
  46. ?>
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. <br/><br/><br/>
  60. <button type='button' class='btn btn-warning btn-block' onclick='myFunction()'>odpowiedź</button>
  61.  
  62. <br/>
  63. <form action='' method='get'>
  64. <div class="row">
  65. <div class="col"><button type='submit' name="button" value="trudne" class='btn btn-danger btn-block'>trudne</button></div>
  66. <div class="col"><button type='submit' name="button" value="wiem" class='btn btn-success btn-block'>wiem</button></div>
  67. <div class="col"><button type='submit' name="button" value="łatwe" class='btn btn-primary btn-block'>łatwe</button></div>
  68. </div>


czy to powinno tak wyglądać?
id=currentid+1

i id wstawić w zapytaniu select jako OFFSET?

Napisany przez: Tomplus 17.11.2019, 11:47:11

Wyświetlanie pytań bez powtórzeń oczywiście?

Musiałbyś utworzyć np. kolejną tablicę gdzie będziesz zapisywał które pytania zostały wyświetlone (odpowiedziane) a następnie podczas losowania kolejnego pytania wykluczasz z listy pytania które są w danej sesji użytkownika.

Pytanie, czy losowanie/sortowanie pytań chcesz przeprowadzać przez zapytanie SQL czy w tablicy PHP?
Teraz pobierasz wszystkie pytania, tylko po to aby wyświetlić jedno.

Napisany przez: emillo91 17.11.2019, 12:39:14

A może by tak wylosować pytania i zapisać je od razu do sesji i dalej kombinować? Będzie to znacznie wydajniejsze niż każdorazowe odpytywanie bazy danych. Później po odpowiedzi na dane pytanie możesz usuwać je z sesji i wyświetlać kolejne pytanie.

Napisany przez: Tomplus 17.11.2019, 13:33:46

Pytanie czy chce zapisywać wyniki uczniów czy nie.

Wydajność akurat tutaj ma najmniejsze znaczenie. Patrząc po projekcie nie będzie obsługiwał milionów pytań, a jedynie max. 1000. Więc spokojnie baza będzie pracować szybko. Kwiestią jest czy użyje indeksowanie odpowiednio.




Napisany przez: dublinka 18.11.2019, 06:19:30

Autor jest totalnym amatorem i sam nie potrafi nawet zadac konkretnego pytania. Zreszta jak zwykle. Ostatnimi czasy byly to tematy o nieszczesne checkboxy walkowane tygodniami a na odpowiedzi ze strony ów Pana trzeba bylo czekac calymi dniami a to zniechęca do dalszej dyskusji. Zreszta tam nie bylo dyskusji bo tylko "chcialbym to i to" albo "nie dziala i jak to naprawic" jak w dniu dziecka - chcem i tyle.
Autor chce znac odpowiedz ale jakos nie specjalnie sie tym przejmuje a co najwazniejsze brakuje podstawowej wiedzy chocby z zakresu html a rzucanie sie na bazy danych z poprzerabianianym na kolanie kodem jest nieporozumieniem bo nie uwierze ze ktos zna BD a nie woe co to VALUE pol formularza.
Forum jest rowniez dla amatorow ale po pierwsze nalezy zadawac pytania tak zeby byly klarowne i zrozumiale a co najwazniejsze nalezy odpowiadac na sugestie innych bo nie wiadomo co i czy wogole ta osoba jest dalej zainteresowana pomoca. Osoby ktore chca pomoc angazujac sie traca czas na wyczekiwanie.
W tym konkretnym przykladzie tj po tym autorze nie mozna sie spodziewac ze odpowie w ciagu tygodnia. Jak sie komus chce czekac na łaskawie kolejne lakoniczne odpowiedzi ktore i tak nic nie wniosa to ok.
Kilka razy osobiscie tlumaczylem podstawy czym jest VALUE w polach forma lub dawalem odpowiedzi gotowe ktore nalezalo tylko przesledzic ale jak grochem o sciane i rowniez zero odpowiedzi. Niczym bot.
Zaloze sie ze temat wygasnie i powstanie kolejny. Chyba ze dla przekory jasniepan cos odpisze 😂

Napisany przez: Tomplus 18.11.2019, 07:08:21

I tak dobrze ze potrafi używać BBCODE dla kodu który podaje biggrin.gif

Napisany przez: dublinka 18.11.2019, 10:03:25

Cytat(Tomplus @ 18.11.2019, 06:08:21 ) *
I tak dobrze ze potrafi używać BBCODE dla kodu który podaje biggrin.gif


thumbsupsmileyanim.gif

Napisany przez: dentopolis 20.11.2019, 20:53:42

nie jęcz dublinka. to jest forum a nie chat stąd ani moje ani odpowiedzi innych wcale nie są natychmiastowe. w przeciwieństwie do ciebie nie łamię regularminu forum obrażając innych. ty nie rozumiesz moich pytań? ja mam prawo nie rozumieć odpowiedzi informatyków typu: wrzuć sesję do tabeli i wyrzuć w pętli. nie oczekuję gotowych rozwiązań ale chociaż przykładów. chyba na tyle można liczyć w dziale Przedszkole? zakochany.gif

Napisany przez: dublinka 20.11.2019, 21:21:02

Cytat(dentopolis @ 20.11.2019, 19:53:42 ) *
nie jęcz dublinka. to jest forum a nie chat stąd ani moje ani odpowiedzi innych wcale nie są natychmiastowe. w przeciwieństwie do ciebie nie łamię regularminu forum obrażając innych. ty nie rozumiesz moich pytań? ja mam prawo nie rozumieć odpowiedzi informatyków typu: wrzuć sesję do tabeli i wyrzuć w pętli. nie oczekuję gotowych rozwiązań ale chociaż przykładów. chyba na tyle można liczyć w dziale Przedszkole? zakochany.gif

Najpierw naucz sie zadawac pytania bo traz robisz to jak 5latek ktory nie wie czeg ochce.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)