Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z funkcją UPDATE
Forum PHP.pl > Forum > Bazy danych > MySQL
bratomir
Ludzie pomocy nie wiem dlaczego to nie dziala:/ Kod wygenerowałem przez phpmyadmin.. Jak ktoś wyłapał czemu nie działa to niech napisze bede wdzięczny

  1. <?php
  2. if ($_POST['przycisk']!="Aktualizuj")
  3. {
  4.  /* Otwarcie połączenia z bazą danych */
  5.  $polacz = mysql_connect('localhost', 'root', 'krasnal')
  6. or die("Nie udało się połączyć z bazą danych");
  7.  mysql_select_db('ciemak');
  8.  
  9. /* Pobranie treści pola z tabeli */
  10. $query = "SELECT tresc FROM simple_design WHERE id = 'home'";
  11. $result = mysql_query($query);
  12.  
  13. /* Wyświetlanie */
  14. while($row = mysql_fetch_array($result))
  15. {
  16. ?>
  17. <form method="POST" action="<?php print("$PHP_SELF"); ?>">
  18. <textarea cols="40" rows="10" name="tresc"><?php echo $row['tresc']; ?></textarea><br><br>
  19. <input type="submit" name="przycisk" value="Aktualizuj">
  20. </form>
  21. <?php
  22. }
  23. }
  24. else
  25. {
  26.  
  27. $tresc = $_POST['tresc'];
  28.  
  29. /* Aktualizacja danych */
  30. $sql = 'UPDATE `ciemak`.`simple_design` SET `tresc` = $tresc WHERE CONVERT(`simple_design`.`id` USING utf8) = 'home' LIMIT 1;';
  31. $result = mysql_query($sql);
  32. if ($result == 0)
  33. print("Nie udało się");
  34. else
  35. print("Dane zostały zaktualizowane");
  36. }
  37.  
  38. ?>
wijet
Moze jakis komunikat bledu, czy mamy zgadywac?
bratomir
Chodzi o to że właśnie nie ma komunikatu. Wyświetla się "Nie udało się"
wijet
To powinno być w podwójnym cudzysłowie bo nie będzie podstawienia pod $tresc
  1. <?php
  2. $sql = 'UPDATE `ciemak`.`simple_design` SET `tresc` = $tresc WHERE CONVERT(`simple_design`.`id` USING utf8) = 'home' LIMIT 1;';
  3. ?>
bratomir
ale to co ty wyslales wygląda tak samo.. gdzie powinien być podwojny cudzysłow
wijet
Cale zapytanie aktualizujace powinno być w podwójnym cudzysłowie. dry.gif
bratomir
No to tak zrobiłem i nadal to samo:/ Pytałem kolegi też nie wiedział czemu nie działa.. tu wychodzi że całość ma cały czas wynik 0 tylko dlaczego?
Kicok
  1. <?php
  2.  
  3. $result = mysql_query($sql) or die( 'Error:<br />' . mysql_error() );
  4.  
  5. ?>


I tak przy każdym zapytaniu. Teraz powinno wyświetlić jakiś błąd.
bratomir
Error:
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 'dfgdfg WHERE CONVERT(`simple_design`.`id` USING utf8) = \'home\' LIMIT 1' at line 1
nospor
no ale teksty trzeba brac w apostrofy:
  1. ...`tresc` = '$tresc'....
bratomir
Error:
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 '\'home\' LIMIT 1' at line 1

po dodaniu apostrofow
nospor
Dobra, masz tu cale zapytanie bo byk nabyku:
  1. <?php
  2. $sql = "UPDATE `ciemak`.`simple_design` SET `tresc` = '$tresc' WHERE CONVERT(`simple_design`.`id` USING utf8) = 'home' LIMIT 1";
  3. ?>
bratomir
Uhhh.. sory
Teraz jest taki:
UPDATE command denied to user 'apache'@'localhost' for table 'simple_design'
nospor
no masz napisane jak wol: nie masz prawa dostepu tongue.gif

musisz polączyc sie z bazą takim uzytkownikiem, ktory moze bawic się to tabelą
bratomir
Ech bezsensu.. zalozyłem tą tabele w mojej bazie i niby czemu nie moge edytować a na kompie jak próbuje to znowu pisze tak:
Something is wrong in your syntax obok '(`simple_design`.`id` USING utf8) = 'home' LIMIT 1' w linii 1
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.