![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 6.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Na podstawie lektury forum zrobiłem prostą bazę z dwoma tabelami. Aby dodawać do tabeli nowe rekordy zrobiłem formularz o nazwie form_dodaj_miasto.php wykorzystujący Kod form action="dodaj_miasto.php" method="post" a tu pliczek dodaj_miasto.php
Dodawanie rokordów działa ale po dodaniu nowego rekordu poprzez submit wyświetlana jest w oknie przeglądarki "czysta strona", chciałbym aby po dodaniu rekordu wyświetliła się strona z zawartością ostatnich np. 20 rekordów. Zrobiłem więc pliczek view_miasta.php :
W "ncludowanym" pliku przy pomocy "LIMIT" ustawiam sobie ilość wyświetlanych rekordów. Jednak tu też mam problem bo chcąc wyświetlić np ostatnich 20 rekordów z tabeli zawierającej 50, wyświetla mi w tabelce tak: 50 49 48 itd. a chciałbym żebym miał wynik w postaci: ... 48 49 50 Nie wiem jak to zrobić. Nie wiem też jak połączyć form_dodaj_miasto.php z view_miasta.php, abym po dodaniu submitem nowego rekordu otrzymywał nie czystą stronę a tę view_miasta.php. Mam nadzieję że komuś z forumowiczów będzie się chciało dobrnąć do końca tego posta i udzielić odpowiedzi. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 15 Dołączył: 2.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Powinno być chyba odwrotnie?
W "ncludowanym" pliku przy pomocy "LIMIT" ustawiam sobie ilość wyświetlanych rekordów. Jednak tu też mam problem bo chcąc wyświetlić np ostatnich 20 rekordów z tabeli zawierającej 50, wyświetla mi w tabelce tak: 50 49 48 itd. a chciałbym żebym miał wynik w postaci: ... 48 49 50 ORDER BY Nie wiem też jak połączyć form_dodaj_miasto.php z view_miasta.php, abym po dodaniu submitem nowego rekordu otrzymywał nie czystą stronę a tę view_miasta.php. w pliku dodaj_miasto.php, zaraz po wykonaniu zapytania ($wynik = mysql_query($zapytanie)(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) dodaj:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
chyba nie ORDER BY tylko kombinować z DESC i ASC...
np.:
czy jakoś tak... (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Ten post edytował mpps 15.06.2007, 19:51:41 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 22.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tak wyswietli 20 ostatnich rekordow, ale rowniez w odwrotnej kolejnosci
To zadziala:
BTW. Miasta dodajesz Ty czy uzytkownicy? Bo jesli uzytkownicy, zalecilbym latanie dziur (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował mild 15.06.2007, 21:17:16 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
BTW. Miasta dodajesz Ty czy uzytkownicy? Bo jesli uzytkownicy, zalecilbym latanie dziur (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) a jakie dziury masz na myśli? ew. można:
gdzie $rows będzie wynikiem mysql_num_rows zliczającym ilość wpisów (wierszy) w bazie danych:
czyli:
Ten post edytował mpps 15.06.2007, 22:13:57 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 22.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
W tym:
Kod $_POST['miasto_id'] = $miasto_id; $_POST['woj_id'] = $woj_id; $_POST['nazwa'] = $nazwa; $_POST['uwagi'] = $uwagi; Przed zmiennymi ktore powinny byc liczbami (int) zmienna albo 0 + zmienna, do tekstu stripslashes/addslashes/mysql_escape_string |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 242 Pomógł: 0 Dołączył: 14.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 22.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tak w zasadzie nie robilbym w tabeli kolumny miasto_id.
Zamiast tego zwykle id auto_increment z kluczem podstawowym i po sprawie. I tak nie powinno sie powtarzac, a robota prostsza (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) EDIT: Jesli juz tak bardzo opierac sie na zmiennych w ilosci rekordow to koncowka LIMIT ".$rows - 20.", ".$rows bedzie lepsza (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ten post edytował mild 15.06.2007, 22:47:10 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 6.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedzi, 'Location: view_miasta.php' oczywiście działa tak jak należy.
Co do wyświetlania rekordów: Cytat BTW. Miasta dodajesz Ty czy uzytkownicy? Bo jesli uzytkownicy, zalecilbym latanie dziur Miasta dodaję ja, uytkownicy nie mają takiej możliwości. Wasze sugestie dotyczące sposobu na wyświetlanie ostatnich rekordów też są ok, ale w przypadku gdy tabela 'miasta' miałaby stałą ilość rekordów np. 50. Faktycznie wyświetlam tak jak chcę przy użyciu np. ASC LIMIT. Jednak chciałbym mieć możliwość takiego wyświetlania przy założeniu że ilość rekordów w tej tabeli jest zmienna. Czyli dziś ma 50 rekordów, jutro 80, a za dwa dni np. 100. Jeśli dobrze zrozumiałem to przy proponowanych przykładach (ASC LIMIT 30) uzyskam przy tabeli zawierającej 100 rekordów wyświetlanie 70 rekordów. Fajnie byłoby gdybym nie musiał co kilka dni ingerować w kod dla uzyskania ostatnich 20 czy 30 rekordów wyświetlonych na zasadzie: .... 97 98 99 Jeszcze raz dzięki za poświęcony czas. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 22.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Sklej kilka ostatnich postów.
Wykorzystaj: Kod $total_rows = mysql_query('SELECT * FROM miasta'); $rows = mysql_num_rows($total_rows); $result = mysql_query("SELECT * FROM miasta ORDER BY miasto_id ASC LIMIT ".$rows - 20.", ".$rows) or die('error'); Nie wiem jak to bedzie pasowac do Twoich potrzeb, bo nie wrzuciles tutaj tresci swojego zapytania. Jak cos to pisz, pomozemy na pewno. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 17:12 |