Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] zapisanie kilku wersów do bazy jednocześńie
dentopolis
post 28.03.2017, 16:46:10
Post #1





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

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


wartości z formularza pobieram z adresu przez GET:
http://localhost/zapisz.php?id=16&18=b...z%C5%82e%20endo

chciałbym żeby zaktualizował każdy stan zęba jeśli zmieni się parametr np.18=x na 18=y ale obecny kod powoduje że wszystkie wartości są takie same jak pierwszego parametru. nie zamykam gdzieś pętli?

  1. if ($polacz and $row['pacjent'] == $id) {
  2. if ($row['zab'] = 18) {
  3. $update18 = "UPDATE diagram SET stan ='$rightuppereight', info = '$rightuppereights'";
  4. $q = $conn->query($update18);
  5. }
  6. else {
  7. echo "nie";
  8. }
  9. #17
  10. if ($row['zab'] = 17) {
  11. $update17 = "UPDATE diagram SET stan ='$rightupperseven', info = '$rightuppersevens'";
  12. $q = $conn->query($update17);
  13. }
  14. else {
  15. echo "nie";
  16. }





próbowałem czy to coś zmieni ale bez skutku:
if ($row['zab'] == 18) {
lub
if ($row['zab'] == '18') {

Ten post edytował dentopolis 28.03.2017, 17:11:52
Go to the top of the page
+Quote Post
trueblue
post 28.03.2017, 17:14:53
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


W kodzie masz przypisanie, pod kodem piszesz o próbach z porównaniem.


--------------------
Go to the top of the page
+Quote Post
dentopolis
post 28.03.2017, 17:21:30
Post #3





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

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


myślałem że w tym fragmencie kodu jest błąd.
Go to the top of the page
+Quote Post
viking
post 28.03.2017, 17:30:37
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


= przypisanie
== / === porównanie


--------------------
Go to the top of the page
+Quote Post
dentopolis
post 28.03.2017, 17:36:09
Post #5





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

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


jakąkolwiek ten fragment kodu ma postać, działa tak samo i aktualizowana jest wartość wszystkich zębów np, 18,17 jako x mimo że 18=x a 17=y

  1. if ($polacz and $row['pacjent'] == $id) {
  2. if ($row['zab'] == '18') {
  3. $update18 = "UPDATE diagram SET stan ='$rightuppereight', info = '$rightuppereights'";
  4. $q = $conn->query($update18);
  5. }
  6. else {
  7. echo "nie";
  8. }
  9. #17
  10. if ($row['zab'] == '17') {
  11. $update17 = "UPDATE diagram SET stan ='$rightupperseven', info = '$rightuppersevens'";
  12. $q = $conn->query($update17);
  13. }
  14. else {
  15. echo "nie";
  16. }


Ten post edytował dentopolis 28.03.2017, 17:39:36
Go to the top of the page
+Quote Post
trueblue
post 28.03.2017, 17:53:57
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Po pierwsze nigdzie nie masz warunku na wartość z $_GET, po drugie nie ma warunku w UPDATE.


--------------------
Go to the top of the page
+Quote Post
dentopolis
post 28.03.2017, 18:32:27
Post #7





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

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


cały kod

  1. <?php
  2. $id=$_GET['id'];
  3. #zęby
  4. $rightuppereight=$_GET['18'];
  5. $rightupperseven=$_GET['17'];
  6. $rightuppersix=$_GET['16'];
  7. $rightupperfive=$_GET['15'];
  8. $rightupperfour=$_GET['14'];
  9. $rightupperthree=$_GET['13'];
  10. $rightuppertwo=$_GET['12'];
  11. $rightupperone=$_GET['11'];
  12. $leftupperone=$_GET['21'];
  13. $leftuppertwo=$_GET['22'];
  14. $leftupperthree=$_GET['23'];
  15. $leftupperfour=$_GET['24'];
  16. $leftupperfive=$_GET['25'];
  17. $leftuppersix=$_GET['26'];
  18. $leftupperseven=$_GET['27'];
  19. $leftuppereight=$_GET['28'];
  20.  
  21. $rightlowereight=$_GET['48'];
  22. $rightlowerseven=$_GET['47'];
  23. $rightlowersix=$_GET['46'];
  24. $rightlowerfive=$_GET['45'];
  25. $rightlowerfour=$_GET['44'];
  26. $rightlowerthree=$_GET['43'];
  27. $rightlowertwo=$_GET['42'];
  28. $rightlowerone=$_GET['41'];
  29. $leftlowerone=$_GET['31'];
  30. $leftlowertwo=$_GET['32'];
  31. $leftlowerthree=$_GET['33'];
  32. $leftlowerfour=$_GET['34'];
  33. $leftlowerfive=$_GET['35'];
  34. $leftlowersix=$_GET['36'];
  35. $leftlowerseven=$_GET['37'];
  36. $leftlowereight=$_GET['38'];
  37.  
  38. #stany
  39. $rightuppereights=$_GET['18s'];
  40. $rightuppersevens=$_GET['17s'];
  41. $rightuppersixs=$_GET['16s'];
  42. $rightupperfives=$_GET['15s'];
  43. $rightupperfours=$_GET['14s'];
  44. $rightupperthrees=$_GET['13s'];
  45. $rightuppertwos=$_GET['12s'];
  46. $rightupperones=$_GET['11s'];
  47. $leftupperones=$_GET['21s'];
  48. $leftuppertwos=$_GET['22s'];
  49. $leftupperthrees=$_GET['23s'];
  50. $leftupperfours=$_GET['24s'];
  51. $leftupperfives=$_GET['25s'];
  52. $leftuppersixs=$_GET['26s'];
  53. $leftuppersevens=$_GET['27s'];
  54. $leftuppereights=$_GET['28s'];
  55.  
  56. $rightlowereights=$_GET['48s'];
  57. $rightlowersevens=$_GET['47s'];
  58. $rightlowersixs=$_GET['46s'];
  59. $rightlowerfives=$_GET['45s'];
  60. $rightlowerfours=$_GET['44s'];
  61. $rightlowerthrees=$_GET['43s'];
  62. $rightlowertwos=$_GET['42s'];
  63. $rightlowerones=$_GET['41s'];
  64. $leftlowerones=$_GET['31s'];
  65. $leftlowertwos=$_GET['32s'];
  66. $leftlowerthrees=$_GET['33s'];
  67. $leftlowerfours=$_GET['34s'];
  68. $leftlowerfives=$_GET['35s'];
  69. $leftlowersixs=$_GET['36s'];
  70. $leftlowersevens=$_GET['37s'];
  71. $leftlowereights=$_GET['38s'];
  72.  
  73. if ( ! $id) {
  74. die('brakuje id pacjenta');
  75. }
  76. ?>
  77.  
  78. <?php
  79. function connect()
  80. {
  81. $dbhost = "localhost";
  82. $dbuser = "root";
  83. $dbpass = "";
  84. $dbname = "gabinet";
  85.  
  86. // Create connection
  87. $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error);
  88.  
  89. return $conn;
  90. }
  91.  
  92. echo $upperrighteight;
  93.  
  94. $conn = connect();
  95. $query = "SELECT * FROM diagram WHERE pacjent = $id";
  96. $polacz = $conn->query($query);
  97. $row = $polacz->fetch_array();
  98.  
  99. #18
  100. if ($polacz and $row['pacjent'] == $id) {
  101. if ($row['zab'] == '18') {
  102. $update18 = "UPDATE diagram SET stan ='$rightuppereight', info = '$rightuppereights' WHERE zab='18'";
  103. $q = $conn->query($update18);
  104. }
  105. else {
  106. echo "nie";
  107. }
  108. #17
  109. if ($row['zab'] == '17') {
  110. $update17 = "UPDATE diagram SET stan ='$rightupperseven', info = '$rightuppersevens' WHERE zab='17'";
  111. $q = $conn->query($update17);
  112. }
  113. else {
  114. echo "nie";
  115. }
  116.  
  117. $update16 = "UPDATE diagram SET stan ='$rightuppersix', info = '$rightuppersixs' WHERE zab='16'";
  118. $q = $conn->query($update16);
  119. echo "diagram zmieniony";
  120.  
  121.  
  122. }
  123. else {
  124. $sqlsave18 = "INSERT INTO diagram VALUES ('', '$id', '18', '$rightuppereight', '$rightuppereights')";
  125. $sqlsave17 = "INSERT INTO diagram VALUES ('', '$id', '17', '$rightupperseven', '$rightuppersevens')";
  126. $q = $conn->query($sqlsave18);
  127. $q = $conn->query($sqlsave17);
  128. echo "diagram zapisany";
  129.  
  130. }
  131. $polacz->close();
  132. ?>
Go to the top of the page
+Quote Post
Lord
post 28.03.2017, 19:26:33
Post #8





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

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


dlaczego tak boisz sie tablic?

nie zapisuje się zmiennych w taki sposób

$zmienna1
$zmienna2
$zmienna3

tylko w w tablicy

$zmienna[1]
$zmienna[2]
$zmienna[3]

dane w $_GET też mogą być w tablicach 2 i wiecej wymiarowych przez co można potem użyć pętli, ewentualnie możesz w jakis sposób wyszukać np wszystkie id gdzie masz ustawić określone wartości jednym zapytaniem. To co robisz jest bardzo niepoprawne i większość twoich problemów wynika z nie czytania tego co piszą ci ludzie w odpowiedziach.

Ten post edytował Lord 28.03.2017, 19:28:30
Go to the top of the page
+Quote Post
dentopolis
post 28.03.2017, 20:15:17
Post #9





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

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


rozumiem.więc przerobię zmienne numerów zębów na takie:
$zab[18] = "18";
$zab[17] = "17";

ale jak teraz zmienić ten kod aktualizujący dany stan zęba z GET?

#18
if ($polacz and $row['pacjent'] == $id) {
if ($zab[18] == '18') {
$update18 = "UPDATE diagram SET stan ='$rightuppereight', info = '$rightuppereights' WHERE zab='18'";
$q = $conn->query($update18);
}
else {
echo "nie";
}


sugerując się odpowiedzią ze stackoverflow:
The usual way to do this in PHP is to put id[] in your URL instead of just id:
http://link/foo.php?id[]=1&id[]=2&id[]=3
Then $_GET['id'] will be an array of those values. It's not especially pretty, but it works out of the box.

czyli u mnie powinienem mieć np.?id[]=x&id[]=c&id[]=w

Ten post edytował dentopolis 28.03.2017, 20:39:15
Go to the top of the page
+Quote Post
Lord
post 28.03.2017, 22:25:35
Post #10





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

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


  1. <form method="post">
  2. <?php
  3. $array = [12,1,7,8,13];
  4. foreach($array as $el):
  5. ?>
  6. <?=$el ?> |
  7. stan<input type="text" name="t[<?=$el?>][stan]"> |
  8. info<input type="text" name="t[<?=$el?>][info]">
  9. <br>
  10. <?php endforeach; ?>
  11. <input type="submit">
  12. </form>
  13.  
  14. <?php
  15. $stan = ['w', 'c', 'x'];
  16. if(isset($_POST['t']) && is_array($_POST['t'])){
  17. $t = $_POST['t'];
  18. foreach($t as $index => $el){
  19. if(in_array($el['stan'], $stan)){ // sprawdz info bo nie wiem co tam ma byc
  20. $update = 'UPDATE diagram SET stan =\''.$el['stan'].'\', info = \''.$el['info'].'\' WHERE zab='.$index;
  21. echo $update.'<br>';
  22. }
  23. }
  24. }
  25. ?>


to tam nie jest idealne napewno ktoś mi tutaj błędy wytknie, ale mam nadzieje ze trochę pomoże, napwno należy sprawdzić dane przed dodaniem do bazy.

Ten post edytował Lord 28.03.2017, 22:35:49
Go to the top of the page
+Quote Post
Puszy
post 29.03.2017, 08:30:06
Post #11





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

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


Taka dygresja, do autora: ostatnio otwierasz bardzo wiele nowych tematów związanych z totalnymi podstawami, powiedziałbym nawet że nie PHP a samego programowania. Z tematyki wnioskuję że przygotowujesz projekt dla klienta. Z własnego doświadczenie chciałbym rzucić radę - mierz siły na zamiary. Wszystko spoko dopóki klient się nie zorientuje że dużo rzeczy się może krzaczyć. No chyba że się mylę i ten projekt służy właśnie do nauki PHP, wtedy nie było tematu.
Go to the top of the page
+Quote Post
dentopolis
post 29.03.2017, 09:51:55
Post #12





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

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


projekt jak to sugeruje moj nick jest dla mnie na cele prywatne.sugeruje rowniez ze nie jestem informatykiem.zdaje sobie sprawę ze moj kod jest prostacki,niepoprawny,nieefektywny i mozna zo znacznie poprawic.moglbym tez to zlecic.tylko ze lubie to,mozolnie ale dochodze do celu i skrypt do obslugi gabinetu mi dziala.calkiem dziala rejestracja, terminarz, diagram badania,wywiad i karta pacjenta. ale co chwile cos wprowadzam nowego.
Go to the top of the page
+Quote Post
woxala123
post 29.03.2017, 15:07:39
Post #13





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

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


Polecam ci na początek tę książkę.
http://it-ebooks.directory/book-0987153080.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 Wersja Lo-Fi Aktualny czas: 28.03.2024 - 15:05