Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP] Nie update'uje wyników do bazy
Komiłaj
post 23.12.2010, 22:19:12
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 10.12.2010

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


Napisałem skrypt, na update'owanie rekordów do bazy.
Kod:
  1. <?php
  2. include('includes/header.php');
  3. include('includes/menu.php');
  4. include('includes/body_header.php');
  5.  
  6.  
  7. if(!isset($_GET['site']))
  8. $_GET['site'] = 1;
  9.  
  10. $query = mysql_query("SELECT tresc, nazwa FROM strony WHERE id = '".$_GET['site']."'");
  11.  
  12. while ($row = mysql_fetch_array($query))
  13. {
  14. echo "
  15. <form method=\"post\" action=\"zmien.php\">
  16. <textarea name=\"nazwa\" cols=\"75\" rows=\"1\"/>".$row['nazwa']."</textarea><br />
  17. <textarea name=\"tresc\" cols=\"75\" rows=\"20\" >".$row['tresc']."</textarea><br /><br />
  18. <input type=\"hidden\" name=\"id\" value=\"".$_GET['site']."\" />
  19. <input type=\"submit\" value=\"Zmień\" />
  20. </form>
  21. ";
  22. }
  23.  
  24.  
  25. ?>



Plik zmien.php:

  1. <?php
  2. include('includes/header.php');
  3. include('includes/menu.php');
  4. include('includes/body_header.php');
  5.  
  6.  
  7.  
  8. if ($_POST)
  9. {
  10. $wstawka = ("UPDATE strony SET nazwa = ".$_POST['nazwa'].", tresc = ".$_POST['tresc']." WHERE id = ".$_POST['siteid']);
  11. $wstawienie = mysql_query($wstawka) or die(mysql_error());
  12. echo("Zmieniono zawartość strony. <a href=\"panel.php\">Wróć do panelu admina.</a><br />");
  13. echo $wstawka;
  14. }
  15. else
  16. {
  17. echo('Nie udało się zmienić strony.');
  18. }
  19.  
  20.  
  21.  
  22. ?>
  23.  


Wywala mi
Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'szkoda, że nie działa...


Co jest nie tak?
Go to the top of the page
+Quote Post
PawelC
post 23.12.2010, 22:24:56
Post #2





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Tu jest błąd:
  1. ".$_POST['siteid']);

Brakuje ."

Ten post edytował ExPlOiT 23.12.2010, 22:25:50
Go to the top of the page
+Quote Post
Komiłaj
post 23.12.2010, 22:29:00
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 10.12.2010

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


To nie jest błąd. Tam nie powinno być ", bo zamknięcie łańcucha w tej zmiennej jest tu:
  1. WHERE id = "

Potem dołączam do tego $_POST['site']

Zresztą jak dodam " to wywala błąd parsowania, czyli mam rację.
Nadal czekam na rozwiązanie...
Go to the top of the page
+Quote Post
cycofiasz
post 23.12.2010, 22:32:34
Post #4





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Każda wartość pola które jest typu varchar/text powinna być otoczona apostrofami lub cudzysłowiami
Go to the top of the page
+Quote Post
PawelC
post 23.12.2010, 22:35:17
Post #5





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Zobacz jaki masz kod w $query, a jaki w $wstawka, brak zamknięcia.

Ten post edytował ExPlOiT 23.12.2010, 22:36:40
Go to the top of the page
+Quote Post
Komiłaj
post 23.12.2010, 22:37:40
Post #6





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 10.12.2010

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


Dzięki. cycofiaszowe pomogło. Teraz nie ma tego syntaxu, ale jak update'uję, to nic się nie zmienia w bazie.

zmien.php po edycji:
  1. <?php
  2. include('includes/header.php');
  3. include('includes/menu.php');
  4. include('includes/body_header.php');
  5.  
  6.  
  7. if ($_SESSION['adm'] == 1)
  8. {
  9. if ($_POST)
  10. {
  11. $wstawka = ("UPDATE strony SET nazwa = '".$_POST['nazwa']."', tresc = '".$_POST['tresc']."' WHERE id = '".$_POST['siteid']."'");
  12. $wstawienie = mysql_query($wstawka) or die(mysql_error());
  13. echo("Zmieniono zawartość strony. <a href=\"panel.php\">Wróć do panelu admina.</a><br />");
  14. echo $wstawka;
  15. }
  16. else
  17. {
  18. echo('Nie udało się zmienić strony.');
  19. }
  20. }
  21. else
  22. {
  23. echo("Nie jesteś fajny");
  24. }
  25.  
  26.  
  27. ?>


Ten post edytował Komiłaj 23.12.2010, 22:40:02
Go to the top of the page
+Quote Post
PawelC
post 23.12.2010, 22:39:26
Post #7





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Bo wykonanie zapytanie masz przypisane do zmiennej:
  1. $wstawienie = mysql_query($wstawka) or die(mysql_error());

A powinno być, tak:
  1. mysql_query($wstawka) or die(mysql_error());

Bez przypisanie do zmiennej. I wywal te nawiasy z zapytanie, bo one powinny być, ale w wypadku gdy masz:
  1. $sql=mysql_query("select * from user");

A u Ciebie powinno być:
  1. $sql="select * from user";


Edit//Poprawka

Ten post edytował ExPlOiT 23.12.2010, 22:50:36
Go to the top of the page
+Quote Post
cycofiasz
post 23.12.2010, 22:40:32
Post #8





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Wyświetl sobie zmienną $wstawka i sprawdź czy wszystkie dane są poprawnie uzupelnione, wykonaj otrzymany SQL w phpMyAdmin i sprawdź rezultat
Go to the top of the page
+Quote Post
Komiłaj
post 23.12.2010, 22:47:31
Post #9





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 10.12.2010

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


Dzięki, ExPlOiT działa. A wcześniej w kodzie miałem już:
  1. echo $wstawka;


BTW.
Cytat(ExPlOiT @ 23.12.2010, 22:39:26 ) *
A u Ciebie powinno być:
  1. $sql="select * from user");


chyba raczej
  1. $sql="select * from user";
smile.gif

Ten post edytował Komiłaj 23.12.2010, 22:48:05
Go to the top of the page
+Quote Post
PawelC
post 23.12.2010, 22:49:41
Post #10





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


No mały błąd, na szybko pisałem, już poprawiłem smile.gif

echo nie wykona zapytania, tylko wyświetli zawartość $wstawka

Ten post edytował ExPlOiT 23.12.2010, 22:50:19
Go to the top of the page
+Quote Post
Komiłaj
post 23.12.2010, 22:55:08
Post #11





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 10.12.2010

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


ExPlOiT, chodziło mi jako odpowiedź cycofiaszowi na:
Cytat(cycofiasz @ 23.12.2010, 22:40:32 ) *
Wyświetl sobie zmienną $wstawka i sprawdź czy wszystkie dane są poprawnie uzupelnione, wykonaj otrzymany SQL w phpMyAdmin i sprawdź rezultat


Ten post edytował Komiłaj 23.12.2010, 22:55:34
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: 27.04.2024 - 14:48