Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] skrypt do nauki słówek
Forum PHP.pl > Forum > Przedszkole
dentopolis
piszę bardzo prosty skrypt do nauki słówek. baza wygląda tak: słowo obce , polskie znaczenie , tak (wiem), nie (nie wiem), wyświetleń.

http://dentopolis.org/norweski/

jak powinien wyglądać kod który po wyświetleniu słowa zwiększy liczbę wyświetleń o 1 a po kliknięciu albo na tak albo na nie zwiększy o 1?

obecny kod:
  1.  
  2. // Create connection
  3. $conn = new mysqli($servername, $username, $password, $dbname);
  4. // Check connection
  5. if ($conn->connect_error) {
  6. die("Connection failed: " . $conn->connect_error);
  7. }
  8.  
  9. $sql = "SELECT * FROM norsk ORDER BY RAND() LIMIT 0,1";
  10. $result = $conn->query($sql);
  11.  
  12. if ($result->num_rows > 0) {
  13. while($row = $result->fetch_assoc()) {
  14.  
  15. echo $row[no];
  16. echo "<br/>";
  17. echo "<button type='button'>odpowiedz</button><br/>";
  18. echo $row[pl];
  19. echo "<hr/>";
  20.  
  21. echo "<button type='button'>tak</button>";
  22. echo "<button type='button'>nie</button><br/>";
  23. echo $row [tak];
  24. echo " / ";
  25. echo $row[nie];
  26.  
  27. echo "";
  28. }
  29. } else {
  30. echo "brak wyników";
  31. }
nospor
Nie bardzo rozumiem problem.
Czego nie potrafisz zrobic? Zwiekszyc wartosci w bazie?
dentopolis
po kliknięciu na tak powinna zwiększyć się wartość w kolumnie tak w bazie.odpowiednio z nie. natomiast niezaleznie czy kliknie tak czy nie to ma wzrosnąć wartość wyświetleń.
viking
No i jaki problem? Buttonom daj name i po tym identyfikuj co zostało kliknięte. http://stackoverflow.com/questions/2259155...ql-update-query
dentopolis
mam taki kod ale nie zmienia nic w bazie. czy mogę prosić o sprawdzenie gdzie jest błąd?

  1. $id=$row[id];
  2. $tak=$row[tak]+1;
  3. $nie=$row[nie]+1;
  4. $show=$row[show]+1;
  5.  
  6. echo $row[no];
  7. echo "<br/>";
  8. echo "<button id='show'>odpowiedz</button><br/>";
  9. echo "<p style='display:none;'>";
  10. echo $row[pl];
  11. echo "</p><hr/>";
  12.  
  13. echo "<form action='' method='post'>";
  14. echo "<button type='button' name='tak'>tak</button>";
  15. echo "<button type='button' name='nie'>nie</button><br/>";
  16. echo $row [tak];
  17. echo " / ";
  18. echo $row[nie];
  19. echo "</form>";
  20.  
  21. if (isset($_POST['tak'])) {
  22. $sql = "UPDATE norsk SET tak = '$tak', show = '$show' WHERE id = '$id';";
  23. $conn->query($sql);
  24. }
  25.  
  26.  
  27. }
  28. } else {
  29. echo "brak wyników";
  30. }
viking
Na początek włącz raportowanie błędów bo masz tu pełno notice. id raczej nie jest stringiem?
dentopolis
naprawiłem błędy NOTICE ale co dalej?

  1. <html>
  2. <head>
  3. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  4. <script>
  5. $(document).ready(function(){
  6. $("#hide").click(function(){
  7. $("p").hide();
  8. });
  9. $("#show").click(function(){
  10. $("p").show();
  11. });
  12. });
  13. </script>
  14. </head>
  15. <body>
  16.  
  17. <center>
  18. <a href="/norweski/index.php">Lista</a> |
  19. <a href="/norweski/wszystkie.php">Pytanie Z Wszystkich</a> |
  20. <a href="/norweski/powtarzanie.php">Powtarzanie Trudnych</a>
  21. <hr/>
  22. <?php
  23. $servername =
  24. $username =
  25. $password =
  26. $dbname =
  27.  
  28. // Create connection
  29. $conn = new mysqli($servername, $username, $password, $dbname);
  30. // Check connection
  31. if ($conn->connect_error) {
  32. die("Connection failed: " . $conn->connect_error);
  33. }
  34.  
  35. $sql = "SELECT * FROM norsk ORDER BY RAND() LIMIT 1";
  36. $result = $conn->query($sql);
  37.  
  38. if ($result->num_rows > 0) {
  39. while($row = $result->fetch_assoc()) {
  40.  
  41. $id=$row['id'];
  42. $tak=$row['tak']+1;
  43. $nie=$row['nie']+1;
  44. $show=$row['show']+1;
  45. echo $row['no'];
  46. echo "<br/>";
  47. echo "<button id='show'>odpowiedz</button><br/>";
  48. echo "<p style='display:none;'>";
  49. echo $row['pl'];
  50. echo "</p><hr/>";
  51.  
  52. echo "<form action='' method='post'>";
  53. echo "<button type='button' name='tak'>tak</button>";
  54. echo "<button type='button' name='nie'>nie</button><br/>";
  55. echo $row ['tak'];
  56. echo " / ";
  57. echo $row['nie'];
  58. echo "</form>";
  59.  
  60. if (isset($_POST['tak'])) {
  61. $sql = "UPDATE norsk SET tak = '$tak', show = '$show' WHERE id = '$id';";
  62. $conn->query($sql);
  63. }
  64.  
  65.  
  66. }
  67. } else {
  68. echo "brak wyników";
  69. }
  70.  
  71.  
  72.  
  73. $conn->close();
  74. ?>
  75. </center>
viking
Po query linia 62 wyświetl błąd analogicznie jak w linii 31
dentopolis
nadal nie rozumiem co w kodzie jest nie tak. gdzie mogę znaleźć podobny prosty przykład jak zaktualizować wpis w bazie mysql po naciśnięciu przycisku?
Tomplus
Jak chcesz zwiększać wartość, to potrzebujesz tylko Id słowa.

Kod
UPDATE `norsk` SET `tak` = `tak` + 1, `show` = `show` + 1 WHERE `id` = $id;
dentopolis
mój kod obecnie wygląda tak, ale nadal nie aktualizuje bazy:

  1. <html>
  2. <head>
  3. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  4. <script>
  5. $(document).ready(function(){
  6. $("#hide").click(function(){
  7. $("p").hide();
  8. });
  9. $("#show").click(function(){
  10. $("p").show();
  11. });
  12. });
  13. </script>
  14. </head>
  15. <body>
  16.  
  17. <center>
  18. <a href="/norweski/index.php">Lista</a> |
  19. <a href="/norweski/wszystkie.php">Pytanie Z Wszystkich</a> |
  20. <a href="/norweski/powtarzanie.php">Powtarzanie Trudnych</a>
  21. <hr/>
  22. <?php
  23. $servername = "localhost";
  24. $username = "";
  25. $password = "";
  26. $dbname = "";
  27.  
  28. // Create connection
  29. $conn = new mysqli($servername, $username, $password, $dbname);
  30. // Check connection
  31. if ($conn->connect_error) {
  32. die("Connection failed: " . $conn->connect_error);
  33. }
  34.  
  35. $sql = "SELECT * FROM norsk ORDER BY RAND() LIMIT 1";
  36. $result = $conn->query($sql);
  37.  
  38. if ($result->num_rows > 0) {
  39. while($row = $result->fetch_assoc()) {
  40.  
  41. $id=$row['id'];
  42.  
  43. echo $row['no'];
  44. echo "<br/>";
  45. echo "<button id='show'>odpowiedz</button><br/>";
  46. echo "<p style='display:none;'>";
  47. echo $row['pl'];
  48. echo "</p><hr/>";
  49.  
  50. echo "<form action='' method='post'>";
  51. echo "<button type='button' name='tak'>tak</button>";
  52. echo "<button type='button' name='nie'>nie</button><br/>";
  53. echo $row ['tak'];
  54. echo " / ";
  55. echo $row['nie'];
  56. echo "</form>";
  57.  
  58. if (isset($_POST['tak'])) {
  59. $sql = "UPDATE norsk SET tak = '$tak' + 1, show = '$show' + 1 WHERE id = '$id';";
  60. $conn->query($sql);
  61. }
  62.  
  63.  
  64. }
  65. } else {
  66. echo "brak wyników";
  67. }
  68.  
  69.  
  70.  
  71. $conn->close();
  72. ?>
  73. </center>
  74.  
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.