Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] kolejne zapytanie z bazy po przesłaniu formularza
dentopolis
post 17.11.2019, 11:15:56
Post #1





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


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.
przykład

  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. 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. echo "#";
  25. echo $questionid;
  26.  
  27. $user="1";
  28. echo "uczeń:";
  29. echo $user;
  30.  
  31. }
  32.  
  33. echo "<hr/>";
  34. echo "<div class='row' style='height:150px;'>";
  35. echo "<div class='col'>";
  36. echo $question;
  37. echo "</div>";
  38. echo "<div class='col'><div id='answer'>";
  39. echo $answer;
  40. echo "</div></div>";
  41. 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?
Go to the top of the page
+Quote Post
Tomplus
post 17.11.2019, 11:47:11
Post #2





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


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.
Go to the top of the page
+Quote Post
emillo91
post 17.11.2019, 12:39:14
Post #3





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

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


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.
Go to the top of the page
+Quote Post
Tomplus
post 17.11.2019, 13:33:46
Post #4





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


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.



Go to the top of the page
+Quote Post
dublinka
post 18.11.2019, 06:19:30
Post #5





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


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 😂

Ten post edytował dublinka 18.11.2019, 06:47:37


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 18.11.2019, 07:08:21
Post #6





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


I tak dobrze ze potrafi używać BBCODE dla kodu który podaje biggrin.gif
Go to the top of the page
+Quote Post
dublinka
post 18.11.2019, 10:03:25
Post #7





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


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


--------------------
Go to the top of the page
+Quote Post
dentopolis
post 20.11.2019, 20:53:42
Post #8





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


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
Go to the top of the page
+Quote Post
dublinka
post 20.11.2019, 21:21:02
Post #9





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 13:50