Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z edycją rekordu na stronie.
Play12
post 25.10.2018, 18:50:16
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.01.2017

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


Witajcie, krótko i na temat, napisałem skrypt i nie śmiga. Mógłby ktoś nakierować na błąd?

Wszystko elegancko, okno modalne wyświetla, dane z bazy danych pobiera ale gdy zmienie to co chce i klikam "zapisz" to nie zapisuje tego tylko informacja że "nie powiodło się", co źle robię? zapis nie kuma co ma zmienić, tzn. jaki rekord ? bo to logicznie przychodzi mi tylko do głowy, ale nie wiem, może ktoś kumaty by się wypowiedział by było fajnie biggrin.gif

  1. <?php
  2.  
  3. if(isset($_POST['save']))
  4.  
  5.  
  6.  
  7. $id=$_POST['id'];
  8. $product_picture=$_POST['product_picture'];
  9. $product_name=$_POST['product_name'];
  10. $catalog_number=$_POST['catalog_number'];
  11. $additional_information=$_POST['additional_information'];
  12. $quantity=$_POST['quantity'];
  13. $price=$_POST['price'];
  14.  
  15.  
  16.  
  17. $sql = mysql_query("UPDATE zdjecia SET id = '$id' product_picture = '$product_picture', product_name = '$product_name', catalog_number = '$catalog_number', additional_information = '$additional_information', quantity = '$quantity', price = '$price'");
  18.  
  19.  
  20. $wynik = mysql_query($sql);
  21. if ($wynik) {
  22. echo 'Prawidłowo dodano do bazy danych';
  23. }
  24. else
  25. echo "nie powiodlo sie";
  26. }


  1. <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#'.$tabela['id'].'">Edytuj</button>


  1. <div class="modal fade" id="'.$tabela['id'].'" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
  2. <div class="modal-dialog modal-lg">
  3. <div class="modal-content">
  4. <div class="modal-header">
  5. <form name="form0" method="POST" action="">
  6. <h5 class="modal-title" id="exampleModalLongTitle"><input class="form-control" name="product_name" id="product_name" value="'.$tabela['product_name'].'" /></h5>
  7. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  8. <span aria-hidden="true">&times;</span>
  9. </button>
  10. </div>
  11. <div class="modal-body">
  12. <div class="row">
  13. <div class="col-md-6">
  14. <div class="form-group">
  15. <img src="'.$tabela['product_picture'].'" style="width: 350px;height: 250px;" class="img-responsive img-radio">
  16. </div>
  17. </div>
  18. <div class="col-md-6">
  19. <div class="form-group">
  20. Numer Katalogowy:
  21. <input class="form-control" name="catalog_number" id="catalog_number" value="'.$tabela['catalog_number'].'" />
  22. </div>
  23. <div class="form-group">
  24. Dodatkowe Informacje:
  25. <div class="input-group">
  26. <textarea class="form-control" name="additional_information" id="additional_information" rows="9" cols="25">'.$tabela['additional_information'].'</textarea>
  27. </div>
  28. </div>
  29. <div class="form-group">
  30. Ilość:
  31. <div class="input-group">
  32. <input class="form-control" name="quantity" id="quantity" value="'.$tabela['quantity'].'">
  33. </div>
  34. </div>
  35. <div class="form-group">
  36. Cena:
  37. <div class="input-group">
  38. <input class="form-control" name="price" id="price" value="'.$tabela['price'].'">
  39. </div>
  40. </div>
  41. </div>
  42. </div>
  43.  
  44. </div>
  45. <div class="modal-footer">
  46. <input class="btn btn-primary" value="save" name="save" type="submit">
  47. <button type="button" class="btn btn-secondary" data-dismiss="modal">Anuluj</button>
  48. </div>
  49. </form>
  50. </div>
  51. </div>
  52. </div>
Go to the top of the page
+Quote Post
viking
post 25.10.2018, 19:05:35
Post #2





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

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


Myślisz że jak wykonasz 2x mysql_query gdzie drugi na wyniku to będzie lepiej? Do tego przestarzały kod i niebezpieczny.


--------------------
Go to the top of the page
+Quote Post
skleps
post 25.10.2018, 22:23:49
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 9
Dołączył: 3.03.2011

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


mam nadzieję że to tylko jakaś nauka a nie kod na produkcję smile.gif
bo aż skóra cierpnie..

po kolei:

$sql = mysql_query("UPDATE zdjecia SET id = '$id' product_picture = '$product_picture', product_name = '$product_name', catalog_number = '$catalog_number', additional_information = '$additional_information', quantity = '$quantity', price = '$price'");

powoduje że w $sql masz false lub true (abstrahuje od błędów w zapytaniu). chwilę później robisz:

$wynik = mysql_query($sql);

a w sumie nie wiem co zrobi baza danych, gdy dostanie jako zapytanie wartośc typu boolean smile.gif

na moje oko możesz zrobić

  1. $wynik = mysql_query("UPDATE zdjecia SET id = '$id' product_picture = '$product_picture', product_name = '$product_name', catalog_number = '$catalog_number', additional_information = '$additional_information', quantity = '$quantity', price = '$price'") or die(mysql_error());
  2. if ($wynik) {
  3. echo 'Prawidłowo dodano do bazy danych';
  4. }
  5. else {
  6. echo "nie powiodlo sie";
  7. }
  8.  
  9.  



z tym że i tak ci nie zadziała z powodu błędów w zapytaniu. Przypominam że:
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
Go to the top of the page
+Quote Post
Play12
post 26.10.2018, 17:21:21
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.01.2017

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


Cytat(viking @ 25.10.2018, 20:05:35 ) *
Myślisz że jak wykonasz 2x mysql_query gdzie drugi na wyniku to będzie lepiej? Do tego przestarzały kod i niebezpieczny.


W takim razie słucham co mógłbym zmienić lub w czym się dokształcić smile.gif

Cytat(skleps @ 25.10.2018, 23:23:49 ) *
mam nadzieję że to tylko jakaś nauka a nie kod na produkcję smile.gif
bo aż skóra cierpnie..

po kolei:

$sql = mysql_query("UPDATE zdjecia SET id = '$id' product_picture = '$product_picture', product_name = '$product_name', catalog_number = '$catalog_number', additional_information = '$additional_information', quantity = '$quantity', price = '$price'");

powoduje że w $sql masz false lub true (abstrahuje od błędów w zapytaniu). chwilę później robisz:

$wynik = mysql_query($sql);

a w sumie nie wiem co zrobi baza danych, gdy dostanie jako zapytanie wartośc typu boolean smile.gif

na moje oko możesz zrobić

  1. $wynik = mysql_query("UPDATE zdjecia SET id = '$id' product_picture = '$product_picture', product_name = '$product_name', catalog_number = '$catalog_number', additional_information = '$additional_information', quantity = '$quantity', price = '$price'") or die(mysql_error());
  2. if ($wynik) {
  3. echo 'Prawidłowo dodano do bazy danych';
  4. }
  5. else {
  6. echo "nie powiodlo sie";
  7. }
  8.  
  9.  



z tym że i tak ci nie zadziała z powodu błędów w zapytaniu. Przypominam że:
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

Uczę się smile.gif No i powiem Ci że dużo mi pomogłeś ;D

Obecnie stoi mi na przeszkodzie jeszcze:
  1. "Duplicate entry '0' for key 'PRIMARY'"

Ale myslę że tu dam radę ^.^
Go to the top of the page
+Quote Post
viking
post 26.10.2018, 18:44:46
Post #5





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

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


Cytat(Play12 @ 26.10.2018, 18:21:21 ) *
W takim razie słucham co mógłbym zmienić lub w czym się dokształcić smile.gif


https://prophp.pl/advice/show/14/jak_czytac...mentacje_php%3F
https://prophp.pl/advice/show/3/korzystam_z...ed._dlaczego%3F
https://prophp.pl/advice/show/11/filtrowani...moca_filter_var
https://prophp.pl/advice/show/23/o_czym_pow...onfiguracja_php
https://prophp.pl/advice/show/25/jak_zabezp...ql_injection%3F

Kluczy głównych AI się nie wypełnia - robi to baza.


--------------------
Go to the top of the page
+Quote Post
skleps
post 28.10.2018, 14:26:06
Post #6





Grupa: Zarejestrowani
Postów: 142
Pomógł: 9
Dołączył: 3.03.2011

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


Cytat(Play12 @ 26.10.2018, 17:21:21 ) *
Uczę się smile.gif No i powiem Ci że dużo mi pomogłeś ;D

Obecnie stoi mi na przeszkodzie jeszcze:
  1. "Duplicate entry '0' for key 'PRIMARY'"

Ale myslę że tu dam radę ^.^



problem zapewne jest w "SET id = '$id' " - strzelam że to pole w bazie jest Auto Increment (AI) więc baza sama uzupełnia to pole i przy Insertach i update należy nie modyfikować/aktualizować tej kolumny
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: 16.04.2024 - 22:08