Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z edycją danych w bazie (nie dodaje do pola w tabeli chociaż on istnieje)
Forum PHP.pl > Forum > Przedszkole
mefistofeles
Tak wygląda kod który działa bez zarzutu:

  1. function dodaj()
  2. {
  3. global $tabela,$p;
  4. $f1=$_POST['f1'];
  5. $f2=$_POST['f2'];
  6. $f3=$_POST['f3'];
  7.  
  8. if($f1!=''){
  9. $pol=baza();
  10. $zap="INSERT INTO $tabela VALUES (NULL,'$f1','$p','$f2','$f3','1')";
  11. //echo"<br>$zap";
  12. $wynik=mysql_query($zap);
  13. mysql_close($pol);
  14. }
  15. if($wynik){pokaz(1);pokaz(2);pokaz(3);}else{echo"<br>B31d";}
  16. }
  17.  
  18. function edytuj($id)
  19. {global $tabela,$p;
  20. $f1=$_POST['f1'];
  21. $f2=$_POST['f2'];
  22. $f3=$_POST['f3'];
  23.  
  24. //if($f1!=''){
  25. $pol=baza();
  26. $zap="UPDATE $tabela SET nazwa = '$f1',url = '$f2',tekst = '$f3' WHERE id=$id ";
  27. $wynik=mysql_query($zap);
  28. mysql_close($pol);
  29. //}
  30. if($wynik){pokaz(1);pokaz(2);pokaz(3);}else{echo"<br>B31d";}
  31. }



Zrobiłem małą modyfikację i dodałem jeszcze do wszystkiego $f4 i mamy coś takiego:

  1. function dodaj()
  2. {
  3. global $tabela,$p;
  4. $f1=$_POST['f1'];
  5. $f2=$_POST['f2'];
  6. $f3=$_POST['f3'];
  7. $f4=$_POST['f4'];
  8.  
  9. if($f1!=''){
  10. $pol=baza();
  11. $zap="INSERT INTO $tabela VALUES (NULL,'$f1','$p','$f2','$f3','1','$f4')";
  12. //echo"<br>$zap";
  13. $wynik=mysql_query($zap);
  14. mysql_close($pol);
  15. }
  16. if($wynik){pokaz(1);pokaz(2);pokaz(3);}else{echo"<br>B31d1";}
  17. }
  18.  
  19. function edytuj($id)
  20. {global $tabela,$p;
  21. $f1=$_POST['f1'];
  22. $f2=$_POST['f2'];
  23. $f3=$_POST['f3'];
  24. $f4=$_POST['f4'];
  25.  
  26. //if($f1!=''){
  27. $pol=baza();
  28. $zap="UPDATE $tabela SET nazwa = '$f1',url = '$f2',tekst = '$f3', sql='$f4' WHERE id=$id ";
  29. $wynik=mysql_query($zap);
  30. mysql_close($pol);
  31. //}
  32. if($wynik){pokaz(1);pokaz(2);pokaz(3);}else{echo"<br>B31d2";}
  33. }


Dodawanie działa, ale przy edycji wyskakuje: B31d2 (błąd), mimo to wszystkie pola się edytują, tylko
to pole gdzie jest $f4 za chiny nie chce się zmienić mimo wielu prób a pole w tabeli nazywa sie 'sql' więc nie wiem
dlaczego nie mogę przypisać do niego nowej wartości.

O co tutaj może chodzić ?
nospor
SQL to slowo zastrzezone.
SObie doczytaj samodzielnie co z tym faktem zrobic:
http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
mefistofeles
Włożyłem sql w nawiasy ale nic nie pomogło.
Trudno, zmienię nazwę tego pola...
Lars_18
Nawiasy? Nazwy pól ujmuje się w znaki `nazwa_pola`. Po tym powinno działać.
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.