Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] UPDATE się nie wykonuje
banki
post
Post #1





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 23.11.2007

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


Witam, siedzę nad tym już trochę czasu, nie mam pojęcia dlaczego dane się nie aktualizują.

dopiero się uczę php i nie widzę gdzie jest coś nie tak. na podobnej podstawie robię dodawanie danych do bazy i działa bez zarzutu.

wrzucam kod całego pliku bo nei wiem gdzie może być błąd i który fragment z góry odrzucić. Proszę o jakieś rady


  1. <?
  2.  
  3. include "../../affconfig.php";
  4. include "../lang/$language";
  5.  
  6. if(!aff_admin_check_security())
  7. {
  8. aff_redirect('index.php');
  9. }
  10.  
  11. include "header.php";
  12.  
  13. // protection against script injection
  14. $change = preg_replace('/[^a-zA-Z0-9_]/', '', $_POST['change']);
  15. mysql_connect($server, $db_user, $db_pass) or die ("Database CONNECT Error (line 17)");
  16. $errorMsg = '';
  17. ?>
  18. <br />
  19. <form method=post action=zmien.php>
  20. <table border=0 cellspacing=0 cellpadding=0 align=center>
  21. <tr align=center valign=middle>
  22. <td width=280><font face=Arial, Helvetica, sans-serif>Szczegóły sprzedaży użytkownika</font></td>
  23. <td width=70>
  24. <select name=change>";
  25. <?
  26. mysql_connect($server, $db_user, $db_pass)
  27. or die ("Database CONNECT Error (line 29)");
  28.  
  29. $result = mysql_db_query($database, "select * from affiliates")
  30. or die ("Database Error");
  31.  
  32. if (mysql_num_rows($result))
  33. {
  34. while ($qry = mysql_fetch_array($result))
  35. echo "<option value=".$qry['refid']." ".($change == $qry['refid'] ? 'selected' : '').">".$qry[refid]."</option>";
  36. print "</select>";
  37. }
  38. ?>
  39. </td>
  40. <td width=50>
  41. <p>
  42. <input type=submit value=<?=AFF_G_SHOW?>>
  43. </p>
  44. </td>
  45. </tr>
  46. </table>
  47. </form>
  48.  
  49. <?
  50. mysql_connect($server, $db_user, $db_pass) or die ("Database CONNECT Error");
  51. $errorMsg = '';
  52.  
  53.  
  54. if($_POST['commited'] == 'yes')
  55. {
  56.  
  57.  
  58.  
  59.  
  60. mysql_db_query($database, "UPDATE sales SET refid = '".$_POST['refid']."', date = '".$_POST['date']."', date_end = '".$_POST['date_end']."', date_kasa = '".$_POST['date_kasa']."', payment = '".$_POST['payment']."', wartosc = '".$_POST['wartosc']."', prowizja = '".$_POST['prowizja']."', usluga = '".$_POST['usluga']."', usluga2 = '".$_POST['usluga2']."', usluga3 = '".$_POST['usluga3']."', klient = '".$_POST['klient']."', klients = '".$_POST['klients']."', osoba = '".$_POST['osoba']."', tel = '".$_POST['tel']."', mail = '".$_POST['mail']."', adres = '".$_POST['adres']."', status = '".$_POST['status']."', info = '".$_POST['info']."' WHERE refid = '$change'")
  61. or die ("Database INSERT sss Error");
  62. echo "<br><p align=center><font color=#009900>".AFF_D_CHANGED."</font></p>";
  63. }
  64.  
  65.  
  66.  
  67. $result = mysql_db_query($database, "select * from sales where refid = '$change' ORDER BY date")
  68. or die ("Database Error");
  69.  
  70.  
  71. print "<br><br><font face=arial>Przekazanych <b>".mysql_num_rows($result)."</b> przez <b>".$change."</b> <b></b><br><br>";
  72.  
  73. if (mysql_num_rows($result))
  74. {
  75. print "<font face=arial><TABLE border=1 cellspacing=0 cellpadding=3 align=center>";
  76. print "<TR><TH align='center' width='130'>Polecający</TH><TH align='center' width='160'>".AFF_G_DATE."</TH>";
  77. print "<TH width='120' align='center'>Firma</TH>";
  78. print "<TH width='240' align='center'>Usługa</TH>";
  79. print "<TH width='75' align='center'>Prowizja</TH><TH width='80' align='center'>Zarobek</TH><TH width='100' align='center'>Status</TH></TR>";
  80.  
  81. while ($qry = mysql_fetch_array($result))
  82. { ?>
  83.  
  84.  
  85. <form action='zmien.php' method='post' ENCTYPE=multipart/form-data>
  86.  
  87. <tr>
  88. <TD align='center'><font size=2><?=$qry[refid]?></TD>
  89. <TD align='center'><font size=2><?=$qry[date]?></TD>
  90. <TD align='center'><font size=2><?=$qry[klients]?></TD>
  91.  
  92. <TD align='center'><font size=2>
  93.  
  94. <?=$qry[usluga]?>
  95. <?if ($qry[usluga2] == '') {
  96. print "";
  97. }
  98. else {
  99. print ", ";
  100. print $qry[usluga2];
  101. }
  102. if ($qry[usluga3] == '') {
  103. print "";
  104. }
  105. else {
  106. print ", ";
  107. print $qry[usluga3];
  108. }
  109. ?>
  110.  
  111. </TD>
  112.  
  113. <TD align='center'><font size=2><input type="text" name="urzad" value="<?=$qry[prowizja]?>"></TD>
  114. <TD align='center'><font size=2><?=$qry[payment]?> zł</TD>
  115.  
  116. <TD align='center'><font size=2>
  117.  
  118. <? if ($qry[status] == 'przyjete do realizacji') {
  119. print "przyjęte do realizacji";
  120. }
  121. else
  122. if ($qry[status] == 'zakonczone niepowodzeniem') {
  123. print "<font color=red>zakończone niepowodzeniem</font>";
  124. }
  125. else
  126. if ($qry[status] == 'rozliczone') {
  127. print "<font color=green>rozliczone</font>";
  128. }
  129. else
  130. if ($qry[status] == 'wykonane') {
  131. print "<font color=green>wykonane</font>";
  132. }
  133. else
  134. print $qry[status]; ?>
  135.  
  136. </TD>
  137.  
  138. </tr>
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146. <?
  147.  
  148. }
  149. print "</TABLE><br><input type='hidden' name='commited' value='yes'><input class='input_zmien' type='submit' name='Submit' value=''></form><br /><br />";
  150. }
  151. ?>
  152.  
  153.  
  154.  
  155. <?
  156. include "../../includes/footer.php";
  157. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


po pierwsze używasz mysql_db_query() zamiast mysql_query() , ta pierwsza jest przestarzała i Twój serwer może jej nie obsługiwać, bo drugie zrób
  1. or die ("Database INSERT sss Error".mysql_error());
żeby zobaczyć czy wywala błedy
Go to the top of the page
+Quote Post
banki
post
Post #3





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 23.11.2007

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


nie wywala żadnych błędów, pokazuje że dodało, mimo to w bazie są stare wartości
Go to the top of the page
+Quote Post
tehaha
post
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


dodało czy zaktualizowało? bo tym skrypt dokonujesz aktualizacji danych a nie wprowadzasz nowy wpis, dodaj to pod zapytaniem żeby zobaczyć jakie zapytanie generuje skrypt
  1. $query = "UPDATE sales SET refid = '".$_POST['refid']."', date = '".$_POST['date']."', date_end = '".$_POST['date_end']."', date_kasa = '".$_POST['date_kasa']."', payment = '".$_POST['payment']."', wartosc = '".$_POST['wartosc']."', prowizja = '".$_POST['prowizja']."', usluga = '".$_POST['usluga']."', usluga2 = '".$_POST['usluga2']."', usluga3 = '".$_POST['usluga3']."', klient = '".$_POST['klient']."', klients = '".$_POST['klients']."', osoba = '".$_POST['osoba']."', tel = '".$_POST['tel']."', mail = '".$_POST['mail']."', adres = '".$_POST['adres']."', status = '".$_POST['status']."', info = '".$_POST['info']."' WHERE refid = '$change'";
  2.  
  3. echo $query;
Go to the top of the page
+Quote Post
banki
post
Post #5





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 23.11.2007

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


chcę aby się aktualizowało, a nie robi się nic
echo $query; nic nie pokazało ...
Go to the top of the page
+Quote Post
tehaha
post
Post #6





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


to wtedy wygląda na to że ta część skryptu wcale się nie wykonuje, jesteś pewien, że ten warunek jest spełniony?
  1. if($_POST['commited'] == 'yes')
  2. {


poza tym nie rozumiem tej częśc, tu próbujesz podmieniać numer ID
  1. SET refid = '".$_POST['refid']."'
a potem używasz go tutaj
  1. WHERE refid = '$change'
skoro jesteś początkujący to nie rób tak że piszesz długi skrypt i się pół dnia zastanawiasz czemu nie działa, rozbij to na serie małych kroków, najpierw spróbuj skonstruować zapytanie na UPDATE tak żeby cokolwiek się podmieniało w bazie jak będzie działać to dołóż warunek if($_POST['commited']) , jeżeli to będzie działać to wtedy dołącz przekazywanie danych z formularza itd. bo tak to będzie się tylko męczył i zniechęcał
Go to the top of the page
+Quote Post
banki
post
Post #7





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 23.11.2007

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


to jest spełnione, bo wyświetla się potem komunikat że niby wysłało do bazy

  1. if($_POST['commited'] == 'yes')
  2. {
  3.  


a loginu nie podmieniam, nawet jesli, to on i tak sie nei zmienia
Go to the top of the page
+Quote Post
mortus
post
Post #8





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Sprawdźmy jakie dane zostały przesłane metodą post. W linii 55 umieść kod
  1. echo '<pre>'; print_r($_POST); echo '</pre>';
i spróbuj wykonać update. Na stronie wyświetli Ci się wtedy zawartość tablicy $_POST w postaci sformatowanego kodu. Wklej ten kod tutaj.
Go to the top of the page
+Quote Post
banki
post
Post #9





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 23.11.2007

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


uprościłem to wszystko do takiego kodu:

  1. <?
  2.  
  3. include "../../affconfig.php";
  4. include "../lang/$language";
  5.  
  6.  
  7. include "header.php";
  8.  
  9. $change2 = 2;
  10.  
  11. mysql_connect($server, $db_user, $db_pass) or die ("Database CONNECT Error");
  12. $errorMsg = '';
  13.  
  14. echo '<pre>'; print_r($_POST); echo '</pre>';
  15.  
  16. mysql_db_query($database, "UPDATE sales SET date_end = '".$_POST['prowizja']."' WHERE id = '$change2'")
  17. or die ("Database INSERT sss Error".mysql_error());
  18. echo "<br><p align=center><font color=#009900>poprawnie dodano</font></p>";
  19.  
  20. ?>
  21.  
  22. <form action='zmien3.php' method='post' ENCTYPE=multipart/form-data>
  23. <input type='text' name='prowizja' value=''>
  24. <input class='input_zmien' type='submit' name='Submit' value=''></form>




i dalej update się nie wykonuje.

po wpisaniu w tabelke 34 i kliknięciu submit jednak pokazuje się:

  1. (
  2. [prowizja] => 34
  3. [Submit] =>
  4. )



p.s. plik ten nazywa się zmien3.php jakby co
Go to the top of the page
+Quote Post
maston
post
Post #10





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 12.08.2005

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


sprobuj nazwy kolumny umieścić pomiędzy znakami ` , zmienna $change2 umiesc miedzy kropkami i uzyj mysql_query

  1. mysql_query("UPDATE sales SET `date_end` = '".$_POST['prowizja']."' WHERE `id` = '".$change2."'")
  2. or die ("Database INSERT sss Error".mysql_error());


sprawdź też czy może typ danych kolumny pozwala na zapis liczb. Albo masz varchar(1) i jak się pojawi coś dłuższego to nie zapisze CI niczego.
jak dalej nie będzie zmian to poprzez PhpMyAdmina ręcznie wykonaj to zapytanie SQL z podstawionymi wartościami. Wtedy zobaczysz dokładnie co tam nie gra.
Go to the top of the page
+Quote Post
mortus
post
Post #11





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


@banki A dostajesz jakiś komunikat błędu?
Go to the top of the page
+Quote Post
banki
post
Post #12





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 23.11.2007

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


dobra już wiem gdzie jest błąd, sorki za trucie dupy, mialem przypisaną inną zmienną w formularzu a inną do wysyłki w dane pole. to po 1. po drugie nei mialem w tabeli mysql przypisane id jako primary key (refid to co innego, inna kolumna). ale dzieki za pomoc dla wszystkich naprowadzilo mnie to co napisaliscie
Go to the top of the page
+Quote Post
tehaha
post
Post #13





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


nie widzę żeby zmienna $change2 w 17 linijce była w jakiś sposób przekazywana, po za tym zamień mysql_db_query na mysql_query
Go to the top of the page
+Quote Post
banki
post
Post #14





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 23.11.2007

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


@mortus

miałem przykładowo kilka wierszy o takim samym refid, dodałem nową kolumnee z parametrem primary key
Go to the top of the page
+Quote Post

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: 22.08.2025 - 23:12