Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] zapisanie wartości pola input
dentopolis
post
Post #1





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

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


próbuję napisać kod wpisujący do bazy zawartość pola input (1 lub 0).
obecnie naciśnięcie przycisku 'zapisz' powoduje dodanie nowego wiersza czyli łączy się z bazą, natomiast tworzy nowy wiersz zamiast zaktualizować istniejący dla pacjent=$id.jak to porawić?



  1. <?php
  2. function connect()
  3. {
  4. $dbhost = "localhost";
  5. $dbuser = "root";
  6. $dbpass = "";
  7. $dbname = "gabinet";
  8.  
  9. // Create connection
  10. $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error);
  11.  
  12. return $conn;
  13. }
  14.  
  15.  
  16. if (isset($_POST['zapisz']))
  17. {
  18. echo "<meta http-equiv=\"Refresh\" content=\"0; url=index.php?page=umawianie \">";
  19. }
  20. else
  21. {
  22. echo "<center></center>";
  23. }
  24.  
  25.  
  26. $conn = connect();
  27. $wezlyniepowiekszone = $_POST['wezlyniepowiekszone'];
  28. $wezlypowiekszone = $_POST['wezlypowiekszone'];
  29. $query = "INSERT into badanie (wezlyniepowiekszone,wezlypowiekszone) VALUES('" . $wezlyniepowiekszone . "','" . $wezlypowiekszone . "')";
  30. $success = $conn->query($query);
  31.  
  32. if (!$success) {
  33. die("Couldn't enter data: ".$conn->error);
  34.  
  35. }
  36.  
  37. echo "<center>wizyta zapisana</center>";
  38.  
  39. $conn->close();
  40.  
  41. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Lord
post
Post #2





Grupa: Zarejestrowani
Postów: 239
Pomógł: 32
Dołączył: 10.03.2004

Ostrzeżenie: (10%)
X----


http://forum.php.pl/index.php?s=&showt...t&p=1212782

https://dev.mysql.com/doc/refman/5.7/en/ins...-duplicate.html
Go to the top of the page
+Quote Post
dentopolis
post
Post #3





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

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


okay,poczytałem i ten kod mi działa czyli aktualizuje istniejący wiersz:
  1. UPDATE badanie SET wezlyniepowiekszone=$wezlyniepowiekszone, wezlypowiekszone=$wezlypowiekszone WHERE pacjent=24


ale ten który powinien dodać nowy jeśli wpisu nie ma nie działa:
  1. INSERT INTO badanie VALUES (77,88) ON DUPLICATE KEY UPDATE badanie SET wezlyniepowiekszone=8, wezlypowiekszone=3 WHERE pacjent=23;
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przejrzyj jeszcze raz skladnie
INSERT.... ON DUPLICATE KEY UPDATE
Tam nigdzie nie ma WHERE, ktore jakims cudem jest u ciebie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dentopolis
post
Post #5





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

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


czy w takim razie jedynym sposobem jest wykonanie tego za pomocą php czyli:

połączenie i sprawdzenie czy wpis dla danego pacjenta istnieje
jeśli nie - insert
jeśli tak - update
?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nic takiego nie napisalem. Napisalem wyraznie co masz zrobic.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dentopolis
post
Post #7





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

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


no dobrze ale w którymś miejscu muszę zaznaczyć którego pacjenta wiersz chcę edytować.jak nie w tym zapytaniu to gdzieś indziej.jakieś wskazówki jeśli już nie kod?

  1. $result = mysql_query("SELECT * FROM licensing_active WHERE title_1 ='$title_1' ");
  2.  
  3. if( mysql_num_rows($result) > 0) {
  4. mysql_query("UPDATE licensing_active SET time = '$time' WHERE title_1 = '$title_1' ");
  5. }
  6. else
  7. {
  8. mysql_query("INSERT INTO licensing_active (title_1) VALUES ('$title_1') ");
  9. }
Go to the top of the page
+Quote Post
trueblue
post
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Pierwsza linijka opisu w dokumentacji: https://dev.mysql.com/doc/refman/5.7/en/ins...-duplicate.html


--------------------
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 Aktualny czas: 20.08.2025 - 04:05