Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z edycją danych w bazie (nie dodaje do pola w tabeli chociaż on istnieje)
mefistofeles
post 12.06.2010, 15:09:10
Post #1





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

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


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ć ?
Go to the top of the page
+Quote Post
nospor
post 12.06.2010, 15:50:29
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




SQL to slowo zastrzezone.
SObie doczytaj samodzielnie co z tym faktem zrobic:
http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mefistofeles
post 12.06.2010, 16:32:24
Post #3





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

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


Włożyłem sql w nawiasy ale nic nie pomogło.
Trudno, zmienię nazwę tego pola...
Go to the top of the page
+Quote Post
Lars_18
post 12.06.2010, 16:48:30
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 11
Dołączył: 29.05.2010

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


Nawiasy? Nazwy pól ujmuje się w znaki `nazwa_pola`. Po tym powinno działać.
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: 14.07.2025 - 03:15