Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] problem z edycją rekordów
Forum PHP.pl > Forum > Przedszkole
kononowicz
witam.
Poniżej wkleiłem kod wyświetlający w tabelce rekordy bazy i obok każdego klika się aby usunąć i edytować rekord. problem tkwi w edycji. kombinowalem na wiele sposobów ale nie mogę sobie z tym poradzić.

klikając na edytuj pojawia się formularz edycji wypełniony danymi jednak po wpisaniu innych danych i wcisnieciu przycisku edytuj nic sie nie dzieje...

i jeszcze w kodzie
  1. <?php
  2. if(isset($_GET['edit'])){
  3. $zapytanie = 'SELECT `towary`.`ID` ,`towary`.`TOWARY` , `towary`.`KOD` , `towary`.`CENA` , `dz
    ialy`.`DZIALY` , `dzialy`.`ID`
  4. FROM `towary` , `dzialy` WHERE `towary`.`ID`='.$_GET['edit'].' AND `towary`.`ID_DZIALY` = `dzialy`.`ID`';
  5.  $wynik = mysql_query($zapytanie);
  6.  echo $_POST['edit'];
  7.  echo'<form action="pokaz_test1.php" method="post">';
  8.  while($wiersz = mysql_fetch_array($wynik)){
  9.  echo'<input type="text" name="TOWARY" value="'.$wiersz['TOWARY'].'">';
  10.  echo'<input type="text" name="KOD" value="'.$wiersz['KOD'].'">';
  11.  echo'<input type="text" name="CENA" value="'.$wiersz['CENA'].'">';
  12.  $dzialy = $wiersz['DZIALY'];
  13. $TOWARY = $wiersz['TOWARY'];
  14.  $KOD = $wiersz['KOD'];
  15.  $CENA = $wiersz['CENA'];
  16.  }
  17.  
  18.  
  19.  $array = array("1" => "dzial budowlany", "farby", "dzial hydrauliczny","dzial metalowy","dzial sanitarny","inne");
  20. echo'<select name="dzialy">';
  21. foreach($array as $key => $value){
  22.  if($key == $dzialy){
  23. $select.$key = "SELECTED";
  24. }
  25. <option value='.$key.' "'.$select.$key.'">'.$value.'</option>';
  26. }
  27. echo'</select>';
  28. echo'<input type="submit" name="edycja" value="edycja">';
  29. echo'</form>';
  30. echo $_POST['edit'];
  31.  if(isset($_POST['edycja']))
  32.  {
  33.  if(mysql_query('UPDATE `rafkaz`.`towary` SET `towary`.`TOWARY`="$TOWARY" , `towary`.`KOD`="$KOD" , `towary`.`CENA`="$CENA" , `towary`.`ID_DZIALY`="$dzialy" where `towary`.`ID`='.$_GET['edit'].' ')) //edycja
  34.  {
  35.  echo "ok";
  36.  }
  37.  else
  38.  {
  39.  echo "false";
  40.  }
  41.  }
  42. }
  43. ?>



z góry dzięki za wszelkie sugestie... sadsmiley02.gif
mdco
Sprawdź klamry if'ów.
Wydaje mi sie ze zle zamknales kalmre od if'a:
  1. <?php
  2. if(isset($_GET['edit']))
  3. ?>
Ociu
Wypluwa Ci jakiś błąd ?
kononowicz
Cytat(Ociu @ 19.11.2006, 09:57:36 ) *
Wypluwa Ci jakiś błąd ?


no własnie nie i to jest najgorsze... upchałem we wszystkie mozliwe miejsca echo mysql_errno(); i
echo mysql_error(); i niby w kodzie wszystko ok.

wygląda na to że dane z formularza do edytowania nawet nie są przekazywane dalej... jak można temu zaradzić??
Ociu
  1. <?php
  2. print '<pre>';
  3. print_r($_POST);
  4. print '</pre>';
  5. ?>

i zobacz aby na pewno dobrze masz indeksy smile.gif
kononowicz
Cytat(Ociu @ 19.11.2006, 21:04:06 ) *
  1. <?php
  2. print '<pre>';
  3. print_r($_POST);
  4. print '</pre>';
  5. ?>

i zobacz aby na pewno dobrze masz indeksy smile.gif



nie wiem czy w dobrych miejscach umiesciłem ten kod ale dla pewności dałem w trzech :] i dwa razy pojawiło mi sie

Array
(
)

co to znaczy??
Ociu
Wychodzi na to, że formularz nie jest wysyłany.
Dawałeś w warunku, dzie ejst czy istnieje $_POST['edycja'] ?

--------------
Teraz dopiero się przyjrzałem :roll2:

  1. <?php
  2. $TOWARY = $_POST['TOWARY'];
  3. $KOD = $_POST['KOD'];
  4. $CENA = $_POST['CENA;'];
  5. $dzialy = $_POST['dzialy'];
  6. ?>


przed zapytaniem smile.gif
kononowicz
Cytat(Ociu @ 20.11.2006, 13:08:56 ) *
Wychodzi na to, że formularz nie jest wysyłany.
Dawałeś w warunku, dzie ejst czy istnieje $_POST['edycja'] ?

--------------
Teraz dopiero się przyjrzałem :roll2:

  1. <?php
  2. $TOWARY = $_POST['TOWARY'];
  3. $KOD = $_POST['KOD'];
  4. $CENA = $_POST['CENA;'];
  5. $dzialy = $_POST['dzialy'];
  6. ?>


przed zapytaniem smile.gif


po wstawieniu echo $_POST['edycja']; wyswietla:

Array
(
[ID] => 1
[TOWARY] => 666
[KOD] => 546
[CENA] => 546
[ID_DZIALY] => 1
[edycja] => edycja
)

te liczby to są dane ktore wpisałem z formularza... wiec to jest niby ok

Cytat(mdco @ 19.11.2006, 07:50:13 ) *
Sprawdź klamry if'ów.
Wydaje mi sie ze zle zamknales kalmre od if'a:
  1. <?php
  2. if(isset($_GET['edit']))
  3. ?>


a jak klamry powinny wyglądać według Ciebie??
mdco
Obiąłeś cały kod warunkiem
  1. <?php
  2. if(isset($_GET['edit']))
  3. ?>

Jak wyślesz formularz przez post to ten skrypt sie nie wykona, bo bedzie oczekiwał zmiennej $_GET['edit'].
kononowicz
oto cały kod tego skryptu. usuwanie działa a edycja jeszcze nie...
poprawiłem nawiasy ( czy o to chodziło questionmark.gif )

wyskakuje nadal takie cos:

Połączono z serwerem
Połączono z bazą towarów
679 4364 546 546 dział budowlany usuń edytuj
675 tow2 2/3 12 dział metalowy usuń edytuj
677 towar3 3 3 inne usuń edytuj

ilość danych w bazie: 3

Array
(
[ID] => 1
[TOWARY] => teset
[KOD] => 546
[CENA] => 546
[ID_DZIALY] => 1
[edycja] => edycja
)

edycja

Array
(
[ID] => 1
[TOWARY] => teset
[KOD] => 546
[CENA] => 546
[ID_DZIALY] => 1
[edycja] => edycja
)

0false1064You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


co ten błąd oznacza?? pewnie cos z mysqlem??



  1. <html>
  2. <head>
  3. <title>baza mysql - edycja i usuwanie towaru - test</title>
  4. </head>
  5. <body>
  6. <?php
  7. // nawiazujemy polaczenie
  8. $connection = @mysql_connect('localhost', 'rafkaz', '*******')
  9. // w przypadku niepowodznie wyświetlamy komunikat
  10. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  11. // połączenie nawiązane ;-)
  12. echo "Połączono z serwerem<br />";
  13. // nawiązujemy połączenie z bazą danych
  14. $db = @mysql_select_db('rafkaz', $connection)
  15. // w przypadku niepowodzenia wyświetlamy komunikat
  16. or die('Brak połączenia z bazą towarów <br />Błąd: '.mysql_error());
  17. // połączenie nawiązane ;-)
  18. echo "Połączono z bazą towarów<br /> ";
  19. // zamykamy połączenie
  20.  
  21. /* zapytanie do konkretnej tabeli */
  22. $wynik = mysql_query("SELECT `towary`.`ID` ,`towary`.`TOWARY` , `towary`.`KOD` , `towary`.`CENA` 
    , `dzialy`.`DZIALY`
  23. FROM `towary` , `dzialy`
  24. WHERE `towary`.`ID_DZIALY` = `dzialy`.`ID`
  25. LIMIT 0 , 30 ;")
  26. or die('Błąd zapytania');
  27. /*wyświetlamy wyniki, sprawdzamy,
  28. czy zapytanie zwróciło wartość większą od 0*/
  29. if(mysql_num_rows($wynik) > 0) {
  30. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  31. echo "<table cellpadding="2" border=1>";
  32. while($wiersz = mysql_fetch_assoc($wynik)) {
  33. echo "<tr>";
  34. echo "<td>".$wiersz['ID']."</td>";
  35. echo "<td>".$wiersz['TOWARY']."</td>";
  36. echo "<td>".$wiersz['KOD']."</td>";
  37. echo "<td>".$wiersz['CENA']."</td>";
  38. echo "<td>".$wiersz['DZIALY']."</td>";
  39. echo '<td>
  40.  <a href="pokaz_test1.php?del='.$wiersz['ID'].'">usuń</a>
  41.  <a href="pokaz_test1.php?edit='.$wiersz['ID'].'">edytuj</a>
  42.  </td>';
  43. echo "</tr>";
  44. }
  45. echo "</table>";
  46. $ilosc_wierszy = mysql_num_rows($wynik);
  47. echo "<br>ilość danych w bazie: $ilosc_wierszy <br>";
  48. }
  49. print '<pre>';
  50. print_r($_POST);
  51. print '</pre>';
  52. if(mysql_num_rows($wynik) == 0)
  53. {
  54. echo "<br>";
  55. echo "baza towarów jest pusta";
  56. }
  57. if(isset($_GET['edit'])){
  58. $zapytanie = 'SELECT `towary`.`ID` ,`towary`.`TOWARY` , `towary`.`KOD` , `towary`.`CENA` , `dz
    ialy`.`DZIALY` , `dzialy`.`ID`
  59. FROM `towary` , `dzialy` WHERE `towary`.`ID`='.$_GET['edit'].' AND `towary`.`ID_DZIALY` = `dzialy`.`ID`';
  60.  $wynik = mysql_query($zapytanie);
  61.  print '<pre>';
  62. print_r($_POST);
  63. print '</pre>';
  64.  echo'<form action="pokaz_test1.php" method="post">';
  65.  while($wiersz1 = mysql_fetch_array($wynik)){
  66. echo'<input type="hidden" name="ID" value="'.$wiersz1['ID'].'">';
  67.  echo'<input type="text" name="TOWARY" value="'.$wiersz1['TOWARY'].'">';
  68.  echo'<input type="text" name="KOD" value="'.$wiersz1['KOD'].'">';
  69.  echo'<input type="text" name="CENA" value="'.$wiersz1['CENA'].'">';
  70.  }
  71.  $array = array("1" => "dzial budowlany", "farby", "dzial hydrauliczny","dzial metalowy","dzial sanitarny","inne");
  72. echo'<select name="ID_DZIALY">';
  73. foreach($array as $key => $value){
  74.  if($key == $dzialy){
  75. $select.$key = "SELECTED";
  76. }
  77. <option value='.$key.' "'.$select.$key.'">'.$value.'</option>';
  78. }
  79. echo'</select>';
  80. echo'<input type="submit" name="edycja" value="edycja">';
  81. echo'</form>';
  82. }
  83.  
  84.  
  85. if(isset($_POST['edycja']))
  86.  {
  87.  $ID = $_POST['ID'];
  88.  $ID_DZIALY = $_POST['ID_DZIALY'];
  89.  $TOWARY = $_POST['TOWARY'];
  90.  $KOD = $_POST['KOD'];
  91.  $CENA = $_POST['CENA'];
  92.  echo $_POST['edycja'];
  93.  print '<pre>';
  94. print_r($_POST);
  95. print '</pre>';
  96.  if(mysql_query('UPDATE `rafkaz`.`towary` SET `towary`.`ID`="$ID1" , `towary`.`TOWARY`="$TOWARY" , `towary`.`KOD`="$KOD" , `towary`.`CENA`="$CENA" , `towary`.`ID_DZIALY`="$ID_DZIALY" where `towary`.`ID`='.$_GET['edit'].' ')) //edycja
  97.  {
  98.  echo "ok";
  99.  }
  100.  else
  101.  {
  102.  echo "false";
  103.  }
  104. }
  105.  
  106.  
  107.  
  108. if(isset($_GET['del']))
  109. {
  110. if(mysql_query('delete from `towary` where ID='.$_GET['del'].' ')) //usuwanie
  111.  {
  112.  echo "usuniete";
  113. }
  114. else
  115. {
  116.  echo "nie usunięte";
  117. }}
  118. mysql_close($connection);
  119. ?>
  120. </body>
  121. </html>
skowron-line
  1. <?php
  2. if(mysql_query('UPDATE `rafkaz`.`towary` SET 
  3.  `towary`.`ID`='.$ID1.' , `towary`.`TOWARY`="'.$TOWARY.'" , `towary`.`KOD`='.$KOD.' , `towary`.`CENA`='.$CENA.' , `towary`.`ID_DZIALY`='.$ID_DZIALY.' where `towary`.`ID`='.$_GET['edit'].' ')) //edycja
  4. ?>
kononowicz
Cytat(skowron-line @ 21.11.2006, 22:33:40 ) *
  1. <?php
  2. if(mysql_query('UPDATE `rafkaz`.`towary` SET 
  3.  `towary`.`ID`='.$ID1.' , `towary`.`TOWARY`="'.$TOWARY.'" , `towary`.`KOD`='.$KOD.' , `towary`.`CENA`='.$CENA.' , `towary`.`ID_DZIALY`='.$ID_DZIALY.' where `towary`.`ID`='.$_GET['edit'].' ')) //edycja
  4. ?>


mam rozumieć ,że podałeś poprawiony kod??

wyskakuje takie cos:

0false1064You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' `towary`.`TOWARY`="test" , `towary`.`KOD`=546 , `towary`.`CENA
skowron-line
daj tak
  1. <?php
  2. `towary`.`CENA`=" '.$CENA.' "
  3. ?>
kononowicz
Cytat(skowron-line @ 21.11.2006, 23:05:31 ) *
daj tak
  1. <?php
  2. `towary`.`CENA`=" '.$CENA.' "
  3. ?>


  1. <?php
  2. if(mysql_query('UPDATE `towary` SET `towary`.`TOWARY`=" '.$TOWARY.' " , `towary`.`KOD`=" '.$KOD.' " , `towary`.`CENA`=" '.$CENA.' " , `towary`.`ID_DZIALY`=" '.$ID_DZIALY.' " WHERE `ID`='.$_GET['edit'].' ')) //edycja
  3. ?>


dałem tak i :

0false1064You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
skowron-line
wiesz co tak to nic sie nie dowiesz z tego bledu daj sobie po kazdym przecinku enter i wtedy bedzie prosciej wylookac gdzie jest blad jak ci pokaze ze w 5 lini to bedziesz wiedzial ze ooo tu gdzie jest cena jest cos nie tak a tak masz wszystko w 1 lini i takie strzelanie
kononowicz
błędy poprawiłem i co najlepsze questionmark.gifquestionmark.gifquestionmark.gif pokazuje:

Array
(
[ID] => 6
[TOWARY] => 66666666
[KOD] => 666666
[CENA] => 6666666
[ID_DZIALY] => 1
[edycja] => edycja
)

edycja

Array
(
[ID] => 6
[TOWARY] => 66666666
[KOD] => 666666
[CENA] => 6666666
[ID_DZIALY] => 1
[edycja] => edycja
)

0ok0

ALE NIE EDYTUJE sadsmiley02.gif

ale zauwazyłem ze [ID] w array powyżej jest inny niż ID w rekordzie... ID rekordu ma wartosc 676 więc mała róznica...

CZY KTOś WIE DLACZEGO MI NIE DZIAłA questionmark.gifquestionmark.gif POMOCY exclamation.gif! JEST TO DLA MNIE BARDZO WAżNE exclamation.gif!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.