P-Programowanie

Wybieranie rekordów

Ostatania modyfikacja: 9 sierpnia 2014, kategoria: Mysql

mysqlJeżeli jesteśmy połączeni z bazą danych możemy wybierać z niej określony rekordy. Sluży do tego rozkaz SELECT. Możemy decydować o kryteriach jakie rekordy konkretnie mają zostać wyświetlone. Możemy także ustalić ile rekordów nas interesuje. Jeżeli zależy nam na jednym rekordzie warto ustalić limit aby oszczędzić transfer.

Wybieranie rekordów mysql

SELECT pola FROM tabela WHERE warunek ORDER BY sortowanie LIMIT limitowanie

Sortowanie i limitowanie można opuścić zależnie od sytuacji. Nazwy pól i tabela jest wymagana. Warunek także można opuścić ale w praktyce rzadko się zdarza aby wyświetlać wszystkie rekordy bazy. Należy trzymać się przedstawionego schematu inaczej mogą wystąpić błędy (np. nie mozna sortować wyników zanim nie podamy warunku).

Zapytania wysyłamy za pomocą komendy mysql_query. Zwraca ona identyfikator, dzięki któremu pobieramy informacje z bazy danych.

Informacje z bazy danych możemy odbierać na dwa sposoby: za pomocą mysql_fetch_array lub mysql_fetch_row. Funkcja pierwsza zwraca wyniki w postaci tablicy asocjacyjnej, druga w postaci indeksów.

Mamy tabelę o nazwie „klienci” o następującej strukturze i zawartości:

select

Chcemy wyświetlić całą bazę danych:

wynik:
Janusz Kowalski 23
Zenon Walczak 34
Zenon Nowak 54

Chcemy wyświetlić osoby w wieku powyżej 30 lat:

wynik:
Zenon Walczak
Zenon Nowak

Zwróć uwagę, że w pierwszym przypadku użyliśmy indeksów a w drugim tablicy asocjacyjnej. Można tego używać jak komu wygodniej, nie ma żadnej różnicy. Jako ciekawostkę powiem, że funkcja mysql_fetch_array przyjmuje jeszcze 3 argumenty (MYSQL_ASSOC, MYSQL_NUM i MYSQL_BOTH). Domyślnie jest to argument pierwszy czyli tablica. Argument drugi oznacza indeksy czyli dokładnie to co mysql_fetch_row. Argument trzeci jest dla wartości mieszanych.

Sortowanie wyników

Sortować można za pomocą rozkazu ORDER BY. Można sortować rosnąco (ASC) lub malejąco (DESC). Trzeba podać nazwę pola, według którego chcemy posortować wyniki. Np. chcemy wyświetlić nazwiska klientów malejąco według wieku:

wynik:
Nowak
Walczak
Kowalski

Limitowanie wyników

Na potrzeby np. statystyk możemy limitować dane z bazy danych. Wybieramy wtedy ilość rekordów, które maja zostać wyświetlone, bez względu na to czy spełniają warunek. Służy do tego rozkaz LIMIT. Argumentami jest liczba początkowa oraz ilość. Limitować możemy np. 3 najbardziej aktywne osoby na forum lub 5 osób z największą ilością postów. Chcąc wyświetlić informacje o 2 najstarszych osobach z naszej tabeli klienci należy napisać:

wynik:
Zenon
Zenon

Wyświetlone zostały dwie najstarsze osoby, obydwie mają na imię Zenon.

Użytkownik Piotrek napisał:

26 lipca 2012


Konkretnie i na temat

Zachęcam Cię do zostawienia komentarza!

Ilość znaków: 0