Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 5 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Dodawanie rekordów do naszej tabeli
04-14-2012, 03:43 PM
Post: #1
Dodawanie rekordów do naszej tabeli
Rekordem nazywamy każdy kolejny wiersz w naszej tabeli.
Aby dodać rekord musimy mieć połączenie z bazą danych oraz uprawnienia do dodawania
danych do tabeli.
Do dowanania rekordów służy polecenie:
"INSERT INTO x SET y=z"
gdzie x to nazwa tabeli, y to nazwa pola, do którego wprowadzamy dane,
a z to dane jakie są zapisywane.
Przy dodawaniu rekordów należy pamiętać, aby dane dodawane były tego samego typu co zdefiniowane w tabeli.
Załóżmy więc, że posiadamy tabelę o nazwie chemia, a w niej cztery kolumny zdefiniowane jako int:nr sprawdzian, odpowiedzi, aktywnosc.
Nasza tabela jest pusta, a pola oprócz nr mają zdefiniowaną wartość domyślną null
Mamy dodać dwóch uczniów:
uczeń z nr 1 dostał ze sprawdzianu 4, z odpowiedzi 3, a z aktywności 5
uczeń nr 2 dostał ze sprawdzianu 5, z odpowiedzi 5 i z aktywności 5
dla ucznia z nr 1 polecenie będzie wyglądało tak:
Cytat:"INSERT INTO chemia SET nr=1, sprawdzian=4, odpowiedzi=3, aktywnosc=5"
dla ucznia z nr 2 polecenie będzie wyglądało tak:
Cytat:"INSERT INTO chemia SET nr=2, sprawdzian=5, odpowiedzi=5, aktywnosc=5"

jak można zauważyć kolejne pola dodajemy po przecinku.

A co się stanie, gdy uczeń z nr 3 ma tylko ocenę 5 ze sprawdzianu?

Po prostu wpiszemy tylko tę wartość, ponieważ pola pozostałe autoamtycznie będą przez bazę danych uzupełniane wartością null.
Cytat:"INSERT INTO chemia SET nr=3, sprawdzian=5"

W języku PHP polecenia będą miały wygląd następujący:


Cytat:$uczen = mysql_query("INSERT INTO chemia SET nr=1, sprawdzian=4, odpowiedzi=3, aktywnosc=5");
$uczen = mysql_query("INSERT INTO chemia SET nr=2, sprawdzian=5, odpowiedzi=5, aktywnosc=5");
$uczen = mysql_query("INSERT INTO chemia SET nr=3, sprawdzian=5");
gdybyśmy posiadali pole nr z ustawieniami na auto_increment, moglibyśmy pominąć numerowanie ręcznę,
pamiętając, aby dane wpisywać za kolejnością w dzienniku, gdyż baza danych każdemu nowemu wpisowi dodaje wartość o jeden większą.

W przypadku wartości znakowej char należy wpisywać ją nazwisko='nowak' gdzie nazwisko jest nazwą pola, a za nowak
wpisujemy nazwisko, które ma się znaleźć w bazie danych.

inny sposób wstawiania danych
"INSERT INTO nazwa_tabeli (nazwa_pola1, nazwa_pola2) VALUES (wartosc_pola1, wartosc_pola2)"
np INSERT INTO chemia (nr, sprawdzian) VALUES (3, 5)
jest równoznaczne INSERT INTO chemia SET nr=3, sprawdzian=5

Gdy mamy jakieś zdefiniowane zmienne (przydatne, gdy wprowadzamy dane z formularza)
możemy zawartość zmiennej wstawić do pola tabeli
Cytat:$ocena=5;
$uczen = mysql_query("INSERT INTO chemia SET nr=1, sprawdzian=4, odpowiedzi=3, aktywnosc='$ocena'");
$uczen = mysql_query("INSERT INTO chemia SET nr=2, sprawdzian='$ocena', odpowiedzi='$ocena', aktywnosc='$ocena'");
$uczen = mysql_query("INSERT INTO chemia SET nr=3, sprawdzian='$ocena'");
W powyższym przykładzie ustawiliśmy w języku PHP zmienną $ocena i nadaliśmy jej wartość 5.
do pola wstawiamy '$ocena', czyli bierzemy zmienną w pojedyńczy apostrof.
Oczywiście jeżeli zmienna ma inną nazwę wpisujemy inną nazwę.
Efekt będzie dokładnie taki sam jak w poprzednim przykładzie zmienna przyjmie wartość 5 i taka wartośc zostanie wpisana do pola.

Pole również może być zmienną

Cytat:$ocena=5;
$s = 'sprawdzian';
$o = 'odpowiedzi';
$a = 'aktywnosc';
$uczen = mysql_query("INSERT INTO chemia SET nr=1, $s=4, $o=3, $a='$ocena'");
$uczen = mysql_query("INSERT INTO chemia SET nr=2, $s='$ocena', $o='$ocena', $a='$ocena'");
$uczen = mysql_query("INSERT INTO chemia SET nr=3, $s='$ocena'");
Efekt będzie taki sam jak poprzednio.
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości