![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Potrzebuje nauczyć się listować rekordy z bazy SQL. Problem polega na tym, że w teorii mniej więcej wiem jak to ma wyglądać ale nie potrafię nic sklecić co by działało. Więc jak już wspomniałem nie szukam gotowca a porad. Do tej pory mam jakiś zaczątek kodu który wydaje się być w pełni poprawny a wygląda tak:
Oczywiście przed tym wszystkim jest jeszcze fragment kodu który łączy mnie z bazą ale myślę, że nie ma potrzeby go podawać. Co to napisałem działa ale moje pierwsze pytanie: czy z tych dwóch zapytań do bazy nie da się zrobić jednego? Ten post edytował Zagiewa 20.10.2010, 20:26:39 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 006 Pomógł: 111 Dołączył: 23.07.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A po co robisz to pierwsze zapytanie, skoro w drugim pobierasz wszystko z tabeli news?
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
akurat w przypadku tych 2 zapytań da się. Na końcu nie masz limitu więc jeśli będziesz mieć 1000 ńusów to i tak za każdym razem wszystkie 1000 się pojawi
![]() co do wylistowania tego musisz jeszcze odczytać to co ci wynik zapytania zwrócił - czyli funkcja mysql_fetch_row (o ile dobrze pamietam, bo dawno nie robiłem w procedurkach) -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jak to w drugim zapytaniu pobieram wszystko? W drugim zapytaniu jedynie zliczam. Podane w funkcji COUNT(id, tytul) nic mi nie da bo jak później z tego odczytam? Po za tym taki kod:
Wywala mi błąd:
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 26.01.2007 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jak to w drugim zapytaniu pobieram wszystko? W drugim zapytaniu jedynie zliczam. W drugim pytaniu faktycznie pobierasz wszystko gdyż nie zawiera ona np. klauzuli WHERE ograniczającej pobierane rekordy. Pierwsze pytanie pobiera 2 kolumny i wszystkie rekordy, natomiast drugie zapytanie pobiera także wszystkie rekordy ale i wszystkie kolumny, a więc 2 zapytanie pobiera więcej danych niż 1. W twoim przypadku wystarczyło zapytać ile wierszy pobrało 1 pytanie ps. źle używasz funkcji count, poczytaj o COUNT |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
kryspuss Dzięki, to jedno mam już za sobą. Zacząłem pisać dalej ale natknąłem się na kolejną przeszkodę. Najpierw jednak pokaże co mam:
Jak widać z dwóch zapytań zostało jedno + dodałem zmienne które myślę, że są niezbędne chociaż to wyjdzie z czasem. Do tej pory ucząc się listowania uczyłem się na pętli for gdzie zmienna "x" miała wartość 100 i była to ilość tak jak by rekordów i jakoś działało. Tutaj jednak muszę stworzyć taką pętlę, która pobierze tylko pierwsze 5 rekordów z bazy, wyświetli je i zatrzyma się. Problem w tym, że nie wiem jak taką pętlę skonstruować. Do tej pory do wypisywania rekordów używałem pętli while gdzie wyglądała tak: Oczywiście pętle while można zatrzymać ale nie da się później jej wznowić od miejsca w którym się zatrzymała. Mam rację? Dlatego wyjściem jest petla for bo mogę skonstruować bardziej złożony warunek ale jaki i tu jest problem. Może jakieś porady bo do tej pory napisałem coś takiego ale nie działa ![]()
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 11:16 |