Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php + mysql] UPDATE rekordów
Forum PHP.pl > Forum > Przedszkole
Piotrwusek
To jest struktura tabeli

  1. -- Struktura tabeli dla `plan_poniedzialek`
  2. --
  3.  
  4. CREATE TABLE `plan_poniedzialek` (
  5. `8` varchar(20) NOT NULL DEFAULT '',
  6. `850` varchar(20) NOT NULL DEFAULT '',
  7. `945` varchar(20) NOT NULL DEFAULT '',
  8. `1040` varchar(20) NOT NULL DEFAULT '',
  9. `1130` varchar(20) NOT NULL DEFAULT '',
  10. `1240` varchar(20) NOT NULL DEFAULT '',
  11. `1315` varchar(20) NOT NULL DEFAULT '',
  12. `1430` varchar(20) NOT NULL DEFAULT '',
  13. `1520` varchar(20) NOT NULL DEFAULT ''
  14. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
  15.  
  16. --
  17. -- Zrzut danych tabeli `plan_poniedzialek`
  18. --
  19.  
  20. INSERT INTO `plan_poniedzialek` VALUES ('---', '---', '---', '---', '---', '---', '---', '---', '---');


Jak zrobić zmianę rekordu 1 czyli pierwsze ---

POD PHP 4 w php
flv
Dorób do tej tabeli klucz główny i odwołuj się do wartości klucza w klauzuli WHERE, i nie zadawaj pytań na które odpowiedź znajdziesz w każdym kursie dla początkujących.
Piotrwusek
a jak dodac ten klucz
Qvazar
  1. -- Struktura tabeli dla `plan_poniedzialek`
  2. --
  3.  
  4. CREATE TABLE `plan_poniedzialek` (
  5.  
  6. `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  7.  
  8. `8` varchar(20) NOT NULL DEFAULT '',
  9. `850` varchar(20) NOT NULL DEFAULT '',
  10. `945` varchar(20) NOT NULL DEFAULT '',
  11. `1040` varchar(20) NOT NULL DEFAULT '',
  12. `1130` varchar(20) NOT NULL DEFAULT '',
  13. `1240` varchar(20) NOT NULL DEFAULT '',
  14. `1315` varchar(20) NOT NULL DEFAULT '',
  15. `1430` varchar(20) NOT NULL DEFAULT '',
  16. `1520` varchar(20) NOT NULL DEFAULT ''
  17. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
  18.  
  19. --
  20. -- Zrzut danych tabeli `plan_poniedzialek`
  21. --
  22.  
  23. INSERT INTO `plan_poniedzialek` VALUES ('---', '---', '---', '---', '---', '---', '---', '---', '---');
Piotrwusek
dzięki i jak mam teraz sie do niego odności
Qvazar
Pole id będzie zwiekszało się o 1 przy każdym dodaniu rekordu. Odczytując pola '850', '945', itd odczytujesz również pole id. Potem jeśli chcesz zmienić coś w danym rekordzie odwołujesz się do danego pola id, tzw. klucza, np UPDATE ..... SET ..., ..., WHERE id = $id; - zmieną $id przyjmuję wartość odczytanego wcześniej pola id danego wiersza.
Piotrwusek
ale rekord zawsze będzie jeden nigdy więcej
Qvazar
jestem na czat-onet.pl pokój towarzyski ~qvazar
Piotrwusek
pomocy probuje zrobić Skrypt Plan lekcji ale mi nie wychodzi pomożecie nawet a internecie nie mogę znaleść jestem na gg 1350463


Witam.

Odczytuje dane z formularza, łącze z bazą danych (wszystko widoczne w kodzie), ale potem nie wiem jak zmienić rekord w polu np 8

mam taki kod
  1. <?php
  2. $ptt9=$_POST['pit9']; // odczytuje dane z formularza
  3. mysql_connect('host', 'user', 'haslo') or die ("Nie masz uprawnień"); // łączę z bazą danych
  4.  
  5. mysql_select_db("kwserwer_5"); // wybieram bazę danych
  6. UPDATE plan_poniedzialek SET pole='$ppt9' ;
  7. mysql_close(); // kończę połączenie z bazą danych
  8. ?>


coś robie żle

pokaże wam strukturę tabeli

  1. REATE TABLE `plan_poniedzialek` (
  2. `8` varchar(20) NOT NULL DEFAULT '',
  3. `850` varchar(20) NOT NULL DEFAULT '',
  4. `945` varchar(20) NOT NULL DEFAULT '',
  5. `1040` varchar(20) NOT NULL DEFAULT '',
  6. `1130` varchar(20) NOT NULL DEFAULT '',
  7. `1240` varchar(20) NOT NULL DEFAULT '',
  8. `1315` varchar(20) NOT NULL DEFAULT '',
  9. `1430` varchar(20) NOT NULL DEFAULT '',
  10. `1520` varchar(20) NOT NULL DEFAULT ''
  11. )

Pomożecie??
uli
Twoim problemem jest niezrozumienie filozofii bazy.

Tabela powinna mieć klucz, o którym jest w postach powyżej. Nie ma znaczenia, czy rekord będzie jeden czy 100000. Ma być ID i tyle.

  1. Struktura tabeli dla `plan_poniedzialek`
  2.  
  3. CREATE TABLE `plan_poniedzialek` (
  4.  
  5. `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  6.  
  7. `8` varchar(20) NOT NULL DEFAULT '',
  8. `850` varchar(20) NOT NULL DEFAULT '',
  9. `945` varchar(20) NOT NULL DEFAULT '',
  10. `1040` varchar(20) NOT NULL DEFAULT '',
  11. `1130` varchar(20) NOT NULL DEFAULT '',
  12. `1240` varchar(20) NOT NULL DEFAULT '',
  13. `1315` varchar(20) NOT NULL DEFAULT '',
  14. `1430` varchar(20) NOT NULL DEFAULT '',
  15. `1520` varchar(20) NOT NULL DEFAULT ''
  16. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;


Przy takiej bazie id jest Twoim identyfikatorem.

Jeśli masz jeden rekord to operacje na nim będą proste:

Wybranie wszystkich pól:

  1. SELECT * FROM plan_poniedzialek WHERE id=1


Edycja np pola 8:

  1. UPDATE plan_poniedzialek SET 8=$wartowść_do_dodania' WHERE id=1


Poza tym:
  1. <?php
  2. mysql_select_db("kwserwer_5"); // wybieram bazę danych
  3. UPDATE plan_poniedzialek SET pole='$ppt9' ;
  4. mysql_close(); // kończę połączenie z bazą danych
  5. ?>


taki kod nie ma prawa działać. Powinno być:

  1. <?php
  2. mysql_select_db("kwserwer_5"); // wybieram bazę danych
  3. $zapytanie = "UPDATE plan_poniedzialek SET pole='$ppt9' WHERE id=1";
  4. $wykonaj = mysql_query($zapytanie);
  5. mysql_close(); // kończę połączenie z bazą danych
  6. ?>


Poczytaj kurs php i mysql.
Piotrwusek
zmieniłem strukturę tabeli tak jak kazałeś i nawet dowiedziałem sie że liczba nie może być kolumną to wyszło mi tak i wszystko chodzi

  1. CREATE TABLE `plan_poniedzialek` (
  2. `id` bigint(20) NOT NULL DEFAULT '1',
  3. `pierwsza` varchar(20) NOT NULL DEFAULT '',
  4. `druga` varchar(20) NOT NULL DEFAULT '',
  5. `trzecia` varchar(20) NOT NULL DEFAULT '',
  6. `czwarta` varchar(20) NOT NULL DEFAULT '',
  7. `piata` varchar(20) NOT NULL DEFAULT '',
  8. `szusta` varchar(20) NOT NULL DEFAULT '',
  9. `siodma` varchar(20) NOT NULL DEFAULT '',
  10. `osma` varchar(20) NOT NULL DEFAULT '',
  11. `dziewiata` varchar(20) NOT NULL DEFAULT '',
  12. PRIMARY KEY (`id`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
  14.  
  15. --
  16. -- Zrzut danych tabeli `plan_poniedzialek`
  17. --
  18.  
  19. INSERT INTO `plan_poniedzialek` VALUES (1, '---', '---', '---', '---', '---', '---', '---', '---', '---');
flv
Nalegam żebyś jednak dokładnie przeczytał jakiś kurs php + mysql, nie musisz ręcznie wpisywać każdego id, nadaj tej kolumnie właściwość auto_increment tak jak podał poprzednik. Swoją drogą to ten temat przypomina raczej ogłoszenia matrymonialne...
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.