Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Update Bazy danych, jak poprawnie
Qatadah
post 27.05.2018, 07:14:01
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 1.11.2017

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


Cześć. Jak poprawnie z aktualizować bazę danych. Pobranie z bazy danych jest poprawne. Nie działa tylko update.
Nie wyświetla błędów ani w kodzie i po otwarciu strony. Mam dwa pola input w każdym rekordzie i według głównego ID w każdym rekordzie chce zrobić update bazy. Albo czegoś mi brakuję albo źle ułożyłem zmienne w update

tabela którą che edytować w bazie wygląda tak:

matches (matchID, homeID, guestID, homeGoals, guestGoals)

connect.php

  1. <?php
  2. $db_server = "localhost";
  3. $db_username = "root";
  4. $db_password = "";
  5. $db_database = "football_db";
  6. $conn = new PDO("mysql:host=$db_server;dbname=$db_database", $db_username, $db_password);
  7. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  8. $conn->exec("set names utf8");
  9. echo 'Connected to Database <br/>';
  10. ?>


index.php

  1. <form action="" method="put">
  2. <table width="100%">
  3. <thead>
  4. <tr>
  5. <td class="colsp" colspan="5">Terminarz</td>
  6. </tr>
  7. <tr class="subcolor title-row">
  8. <td style="width: 10%">id</td>
  9. <td style="width: 40%" class="left">Gospodarz</td>
  10. <td style="width: 40%">Gość</td>
  11. <td style="width: 5%">Home<br/>Goals</td>
  12. <td style="width: 5%">Guest<br/>Goals</td>
  13. </tr>
  14. </thead>
  15. <tbody>
  16. <?php
  17. if(isset($_POST['Submit'])){
  18. $hGoals = $_POST['inphomegoals'];
  19. $gGoals = $_POST['inpguestGoals'];
  20. $update="UPDATE matches SET homeGoals=$hGoals, guestGoals=$gGoals where matchID = ".$matchID;
  21. $stmt = $conn->prepare($update);
  22. $stmt->execute();
  23. echo $stmt->rowCount() . " records UPDATED successfully";
  24. }
  25. $display = $conn->prepare(
  26. "SELECT
  27. m.matchID,
  28. hc.clubName as homeClub,
  29. gc.clubName as guestClub,
  30. m.homeGoals,
  31. m.guestGoals
  32. FROM matches AS m
  33. JOIN clubs AS hc ON hc.clubID = m.homeID
  34. JOIN clubs AS gc ON gc.clubID = m.guestID
  35. ORDER BY matchID ASC ");
  36.  
  37. $display->execute();
  38. $results = $display->fetchAll();
  39. foreach ($results as $index => $row){
  40. ?>
  41. <tr>
  42. <td><label class="matchID"><?php echo $row['matchID']; ?></label></td>
  43. <td><label><?php echo $row['homeClub']; ?></label></td>
  44. <td><label><?php echo $row['guestClub']; ?></label></td>
  45. <td><label><input type="number" name="inphomegoals" value="<?php echo $row['homeGoals']; ?>"/> : </label></td>
  46. <td><label><input type="number" name="inpguestGoals" value="<?php echo $row['guestGoals']; ?>"</label></td>
  47. </tr>
  48. <?php } ?>
  49. </tbody>
  50. <tfoot>
  51. <tr>
  52. <td colspan="5"><input type="submit" value="Add To Base" name="Submit" style="width: 150px; height: 45px"</td>
  53. </tr>
  54. </tfoot>
  55. </table>
  56. </form>
Go to the top of the page
+Quote Post
Kshyhoo
post 27.05.2018, 07:22:09
Post #2





Grupa: Opiekunowie
Postów: 3 831
Pomógł: 315
Dołączył: 4.01.2005
Skąd: że




Wyechuj sobie ten update, to zobaczysz co nie tak.


--------------------
Go to the top of the page
+Quote Post
Qatadah
post 27.05.2018, 07:36:35
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 1.11.2017

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


A możesz podpowiedzieć jak to zrobić, jestem nowicjuszem, nie znam jeszcze wszystkich bajerów smile.gif by samemu znaleźć rozwiązanie ale tak bardziej łopatologicznie jeśli można prosić.
Go to the top of the page
+Quote Post
Kshyhoo
post 27.05.2018, 07:44:37
Post #4





Grupa: Opiekunowie
Postów: 3 831
Pomógł: 315
Dołączył: 4.01.2005
Skąd: że




  1. echo $update;

Nawet parser Forum koloruje ciemniej zmienną, sam powinieneś do tego dojść:
  1. $update="UPDATE matches SET homeGoals=$hGoals, guestGoals=$gGoals where matchID = ".$matchID;



--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 27.05.2018, 19:30:43
Post #5





Grupa: Zarejestrowani
Postów: 7 660
Pomógł: 1348
Dołączył: 26.10.2005

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


@Kshyhoo Update jest akurat w miarę dobry.

Problem leży w formularzu. Pobierasz sobie dane z bazy i w pętli wyświetlaszo wszystkie rekordy. Wysyłając formularz aktualizuje Ci dane tylko z ostatniego wiersza bo poprzednie są nadpisywane (wszędzie to samo name)

Zastanów się co chcesz robić. Czy robić update dla wszystkich rekordów czy tylko dla konkretnego.
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: 23.03.2019 - 18:21