Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL+PHP]Uaktualnianie rekordu w bazie ...
Forum PHP.pl > Forum > Bazy danych > MySQL
Czoszu
Witam,
Mam problem z uaktualnienie rekordu w bazie MySQL.
Plik dodaj.php
  1. <?php
  2. require('../connection.php');
  3.  
  4. $r['title']
  5.  
  6.  
  7. $a = trim($_REQUEST['a']);
  8. $id = trim($_GET['id']);
  9.  
  10. if($a == 'edit' and !empty($id)) {
  11. /* zapytanie do tabeli */
  12. $wynik = mysql_query("SELECT * FROM title WHERE
  13. id='$id'")
  14. or die('Błąd zapytania');
  15. /*
  16.   wyświetlamy wyniki, sprawdzamy,
  17.   czy zapytanie zwróciło wartość większą od 0
  18.   */
  19. if(mysql_num_rows($wynik) > 0) {
  20. /* odczytujemy zawartość wiersza z tabeli */
  21. $r = mysql_fetch_assoc($wynik);
  22. /* wczytujemy dane do formularza */
  23. /*
  24.   w formularz znajdują się ukryte pola "a"
  25.   z wartością "save" i pole "id" z wartością
  26.   zmiennej id
  27.   */
  28. echo '<form action="index.php" method="post">
  29. <input type="hidden" name="a" value="save" />
  30. <input type="hidden" name="id" value="'.$id.'" />
  31. imię:<br />
  32. <input type="text" name="title"
  33. value="'.$r['title'].'" /><br />
  34. <input type="submit" value="popraw" />
  35. </form>';
  36. }
  37. }
  38. elseif($a == 'save') {
  39. /* odbieramy zmienne z formularza */
  40. $id = $_POST['id'];
  41. $title = trim($_POST['title']);
  42. /* uaktualniamy tabelę test */
  43. mysql_query("UPDATE title SET title='$title',WHERE id='$id'")
  44. or die('Błąd zapytania');
  45. echo 'Dane zostały zaktualizowane';
  46. }
  47. ?>



tabela title w bazie
  1. --
  2. -- Baza danych: `test`
  3. --
  4.  
  5. -- --------------------------------------------------------
  6.  
  7. --
  8. -- Struktura tabeli dla `title`
  9. --
  10.  
  11. CREATE TABLE IF NOT EXISTS `title` (
  12. `id` int(11) NOT NULL AUTO_INCREMENT,
  13. `title` varchar(100) NOT NULL DEFAULT '',
  14. PRIMARY KEY (`id`)
  15. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  16.  
  17. --
  18. -- Zrzut danych tabeli `title`
  19. --
  20.  
  21. INSERT INTO `title` (`id`, `title`) VALUES
  22. (1, 'Dj boss');



Po odpaleniu pliku dodaj.php wyskakuje taki błąd:
Kod
Parse error: syntax error, unexpected T_VARIABLE in X:\...\ on line 7


Niby co jest źle w 7 linii? Co tam zmienić? :/
Korab
A co to jest ta na wpół zadeklarowana zmienna w czwartym wierszu? Nawet nie ma średnika na końcu.
5k7
te linie w listingu, które podałeś odzwierciedlają faktycznie miejsce w tym pliku ?
Podzielam również zdanie mojego poprzednika. Nie wiem do czego to ma służyć ale w każdym bądź razie dodaj średnik na końcu tej zmiennej i bedzie dobrze ; )
Deusx
linia 43 przed where jest przecinek, usun go rowniez
Czoszu
Po dodaniu średnika wyskakuje nast. błąd:
Kod
Notice: Undefined variable: r in X:\...php on line 4

Notice: Undefined index: a in X:\...php on line 7

Notice: Undefined index: id in X:\..php on line 8
wujek2009
Ponieważ odwołujesz się do zmiennych/kluczy z tablicy, które nie istnieją.

Najlepiej jakbyś sprawdzał to w warunku IF czy zmienna istnieje;
  1. $wartosc = 0; // wartosc w przypadku, gdy $_GET['page'] nie istnieje...
  2.  
  3. if ( isset($_GET['page']) AND is_numeric($_GET['page']) AND $_GET['page'] > 0 )
  4. {
  5. $wartosc = $_GET['page']; // nadpisujemy zmienną z wartością przekazaną w metodzie GET, stąd nie wyświetli nam w/w błędów
  6. }


To tylko przykład - ważne, abyś po prostu sprawdzał czy zmienne istnieją za pomocą isset()

Np. w czwartej linijce masz $r['title'] - tablica $r nie istnieje, stąd nie możesz odwołać się do 'title' dla tej tablicy bo NIE ISTNIEJE.

W linijce 7 $_REQUEST['a'] - $_REQUEST nie zawiera klucza "a" stąd błąd
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.