Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL+PHP]Uaktualnianie rekordu w bazie ...
Czoszu
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.03.2011

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


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ć? :/

Ten post edytował Czoszu 29.09.2011, 15:48:30
Go to the top of the page
+Quote Post
Korab
post
Post #2





Grupa: Zarejestrowani
Postów: 202
Pomógł: 36
Dołączył: 10.06.2011
Skąd: Dokąd

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


A co to jest ta na wpół zadeklarowana zmienna w czwartym wierszu? Nawet nie ma średnika na końcu.

Ten post edytował Korab 29.09.2011, 16:35:44
Go to the top of the page
+Quote Post
5k7
post
Post #3





Grupa: Zarejestrowani
Postów: 65
Pomógł: 2
Dołączył: 5.12.2006

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


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 ; )

Ten post edytował 5k7 29.09.2011, 16:37:04
Go to the top of the page
+Quote Post
Deusx
post
Post #4





Grupa: Zarejestrowani
Postów: 126
Pomógł: 2
Dołączył: 27.08.2006

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


linia 43 przed where jest przecinek, usun go rowniez
Go to the top of the page
+Quote Post
Czoszu
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.03.2011

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


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
Go to the top of the page
+Quote Post
wujek2009
post
Post #6





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

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


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

Ten post edytował wujek2009 2.10.2011, 15:24:49
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 Aktualny czas: 21.08.2025 - 07:17