Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP] Nie update'uje wyników do bazy
Forum PHP.pl > Forum > Przedszkole
Komiłaj
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?
PawelC
Tu jest błąd:
  1. ".$_POST['siteid']);

Brakuje ."
Komiłaj
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...
cycofiasz
Każda wartość pola które jest typu varchar/text powinna być otoczona apostrofami lub cudzysłowiami
PawelC
Zobacz jaki masz kod w $query, a jaki w $wstawka, brak zamknięcia.
Komiłaj
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. ?>
PawelC
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
cycofiasz
Wyświetl sobie zmienną $wstawka i sprawdź czy wszystkie dane są poprawnie uzupelnione, wykonaj otrzymany SQL w phpMyAdmin i sprawdź rezultat
Komiłaj
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
PawelC
No mały błąd, na szybko pisałem, już poprawiłem smile.gif

echo nie wykona zapytania, tylko wyświetli zawartość $wstawka
Komiłaj
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
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.