![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 18.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Jak zwykle mam problem. Tym razem chodzi o to, że chcę aby rekord pokazywał się na stronie. Chciałbym żeby rekordy pojawiały się od 1 ID do ostatniego ID, jeśli użytkownik kliknąłby przycisk zmiany rekordu to pokazałby się następny rekord chronologicznie po ID.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
google -> mysql order by
google -> mysql LIMIT |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 18.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję
![]() Ok. Zrobiłem tak, że pokazuje mi rekord ![]() Teraz jeszcze jeden problem, chciałbym aby gdy użytkownik odświeży stronę to pokazuje następny rekord. Trzeba użyć jakiejś pętli?> |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 168 Pomógł: 26 Dołączył: 15.09.2011 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Odświeży, czy przejdzie "dalej"? Chodzi mi o to czy link się zmieni, czy też ktoś po prostu da refresh tudzież F5? W tym pierwszym wypadku nie będzie problemu. Dajesz parametr do linku, i czytasz go GET'em i robisz z niego limit. Natomiast jeśli to tylko odświeżenie, to nie wiem czy jakiś JS by się tu nie nadał, bo jak odświeża się to dane tymczasowe są tracone. Musiał być pamiętać ile użytkownik widział, ale z drugiej strony zapisywać każdemu userowi ile widział... I jeszcze kiedy to się czyści?
Jeśli chodzi o sam refresh to podaj więcej szczegółów. -------------------- www.piotrex41.pl - piotrex41 portfolio
d(-.-)b - Music is my life || PHP is my passion |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 18.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi mi o F5, może być dalej
Ten post edytował heroep18 9.07.2012, 14:28:44 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 168 Pomógł: 26 Dołączył: 15.09.2011 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To jeśli może być dalej, to masz co najmniej 2 wyjścia
![]() 1. (Załóżmy, że wyświetlasz po 5 na stronę) Pobierasz wiersze zapytaniem ("SELECT ... LIMIT 0,5"); i wyświetlasz je w pętli. Na końcu robisz sobie odnośnik <a href="?rows=5">Dalej...</a> Więc trzeba poprawić zapytanie - ("SELECT ... LIMIT ".$_GET['rows'].",".$_GET['rows'] + 5);. Tym oto sposobem będziesz pobierać po 5 rekordów i je wyświetlać. Dla wyjaśnienia: Ta liczba 5 w linku oznacza po ile wyświetlasz. Jeśli ją zmienisz to zmień też tę 5 w zapytaniu. 2. Pobierasz wszytko zapytaniem, przechowujesz to w tablicy i zmieniasz wyświetlanie przez JS (bodajże AJAXem takie rzeczy się robi). Można oczywiście AJAXem pobierać po 5 elementów na bieżąco w tle, bez przeładowania strony, ale trzeba zrobić jakiś link/przycisk do przechodnia dalej. -------------------- www.piotrex41.pl - piotrex41 portfolio
d(-.-)b - Music is my life || PHP is my passion |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 29.07.2010 Skąd: POZnan* Ostrzeżenie: (0%) ![]() ![]() |
@Autor: z tym odświeżeniem: wydaje mi się, że mógłbyś spróbować ze zwykłą zmienną, która gromadziła by np. w sesji ilość odświeżeń. Otóż za każdym razem gdy odświeżysz stronę, skrypt wykona się ponownie, więc mógłbyś sprawdzić za pomocą sesji, które to już odświeżenie danego użytkownika i wg tego pobrać kolejne elementy z bazy
![]() Ten post edytował klocus 9.07.2012, 14:29:45 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 18.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Narazie skombinowałem coś takiego:
ale nie chce mi pokazać tych pięciu rekordów. Co mam źle? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Zobacz jak powinno wyglądać limitowanie w mysql
google -> mysql LIMIT |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 18.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Query was empty :/ Nie wiem jak może być puste, kiedy w bazie jest wszystko
Dodałem or die, wyrzuciłem limit (wydaje mi się, że dobrze limituję, ale i tak wyrzuciłem) <?php $query = mysql_query(("SELECT nick FROM tabelakodow ORDER BY ID ASC".$_GET['ID'].",".$_GET['ID'] + 5 )) or die (mysql_error()); $row = mysql_fetch_array($query); echo $row['nick']; ?> Teraz mam błąd: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '5' at line 1 Co to jest? Dodam, że gdy +5 wyrzucę to to samo jest. Jeśli wyrzucę $_get to też, order by tak samo :/ |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 121 Pomógł: 22 Dołączył: 22.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Musisz mu pokazać że $_GET['ID'].",".$_GET['ID'] + 5 jest wyznaczeniem limitu, czyli musisz przed tym dać LIMIT
I kody dawaj w tagach. Ten post edytował Shido 10.07.2012, 11:01:17 -------------------- Sorka za błędy ort. jak coś dajcie znać na PW to popoprawiam.
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Pomijając kwestie bezpieczeństwa (SQL Injection) to po pierwsze twój string, który przesyłasz do bazy to "5" (zadanie dla Ciebie - dlaczego tak jest). Po drugie pomiędzy ASC a $_GET['ID'] brakuje spacji. Po trzecie brakuje słowa kluczowego LIMIT.
@up: Twoje zapytanie również zwraca "5" ![]() EDIT: Po czwarte to drugi argument w LIMIT to "prawdziwy" limit (jeżeli chcesz zawsze pięć rekordów to będzie to po prostu 5). Pierwszy to OFFSET. Ten post edytował redeemer 10.07.2012, 11:12:35 -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 168 Pomógł: 26 Dołączył: 15.09.2011 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Kod $query = mysql_query(("SELECT `nick` FROM `tabelakodow` ORDER BY `id` ASC LIMIT ".$_GET['ID'].",".$_GET['ID'] + 5 )) or die (mysql_error()); lub Kod $query = mysql_query(("SELECT `nick` FROM `tabelakodow` ORDER BY `id` ASC LIMIT '".$_GET['ID']."','".$_GET['ID']."+ 5' )) or die (mysql_error()); Pokombinuj coś sam... -------------------- www.piotrex41.pl - piotrex41 portfolio
d(-.-)b - Music is my life || PHP is my passion |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 13:40 |