Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Update Bazy danych, jak poprawnie
Qatadah
post
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
 
Start new topic
Odpowiedzi
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
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

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: 13.10.2025 - 13:18