Funkcja:
<? function archiv() { html_header(Archiwum, 800); //ilosc wyswietlanych newsow na strone $news_per_page = 6; //ilosc wszystkich newsow w bazie, oprocz ostatnich 6 najnowszych $razem = $all[0] - 6; //jezeli ta zmienna istnieje(jezeli uzytkownik wyslal formularz) zostaja odpowiednio posortowane newsy { //pobiera z bazy dane, odpowiednio je sortujac $query = \"SELECT news_num, news_headline, add_ndate FROM news ORDER BY \".$_POST[\"sort\"].\" LIMIT \".$_GET[\"str\"]*$news_per_page.\",\".$news_per_page; if(!$wynik) error_message(sql_error()); //formularz sortowania sort_form(); //petla wyswietlajaca wszystkie newsy w archwium { //id newsa, potrzebne do wyswietlenia calej jego zawartosci $id_news = $dane[\"news_num\"]; $naglowek = $dane[\"news_headline\"]; $data = $dane[\"add_ndate\"]; //id komentarzy do newsa, potrzebne do wyswietlenia komentarzy do danego newsa $id_comm = $dane[\"news_c_id\"]; ?> <? } } //jezeli nie istenjeje zmienna $_post['sort'] wyswietla sie formularz sortowania oraz newsy w archiwum posortowane domysl ie else { sort_form(); $query = \"SELECT news_num, news_headline, add_ndate FROM news ORDER BY news_num DESC
L MIT \".$_GET[\"str\"] * $news_per_page.\",\".$news_per_page; $wynik = mysql_query($query); if(!$wynik) error_message(sql_error()); while ($dane = mysql_fetch_array($wynik)) { //id newsa, potrzebne do wyswietlenia calej jego zawartosci $id_news = $dane[\"news_num\"]; $naglowek = $dane[\"news_headline\"]; $data = $dane[\"add_ndate\"]; //id komentarzy do newsa, potrzebne do wyswietlenia komentarzy do danego newsa $id_comm = $dane[\"news_c_id\"]; ?> <b> <? } //dzielenie na strony $zmienna = 0; if($_GET[\"str\"]>1) { $zmienna2 = $_GET[\"str\"]-1; } for($i=0; $i<$ile_str; $i++) { $zmienna++; if($_GET[\"str\"]==$zmienna) { } else { } } if($_GET[\"str\"]<$ile_str) { $zmienna3 = $_GET[\"str\"]+1; } } html_footer(); } ?>
Funkcja sort_form():
<? function sort_form() { ?> <font style=\"font-family: Verdana; font-size: 10px; color: gray;\">Sortuj: <select name=\"sort\" size=\"1\" class=\"pollItem\"> <option value=\"news_num DESC\">Domyślnie</option> <option value=\"news_num DESC\">Najnowsze</option> <option value=\"news_num\">Najstarsze</option> <option value=\"news_headline\">Alfabetycznie</option> </select> <input type=\"submit\" class=\"pollButton\" value=\"Sortuj!\" onmouseover=\"this.className='pollButton-over'\" onmouseout=\"this.className='pollButton'\"> <br> <br> <? } ?>
Cos jest nie tak z sortowaniem. Otoz, gdy wybieram zeby mi posortowalo odpowiednie newsy alfabetycznie to (news_headline - to rekord z naglowekiem newsa) w ogole nie ma zadnej roznicy, a gdy wybiore aby mi posortowalo chronologicznie to sortuje, jednak nie do konca tak jakbym tego chcial. Tzn. przy wartościach zmiennych:
$_GET[str] = 1
$news_per_page = 6
zapytanie:
<? $query = \"SELECT news_num, news_headline, add_ndate FROM news ORDER BY \".$_POST[\"sort\"].\" LIMIT \".$_GET[\"str\"]*$news_per_page.\",\".$news_per_page; ?>
powinno wygladac tak:
<? SELECT news_num, news_headline, add_ndate FROM news ORDER BY news_num LIMIT 6,6 ?>
I pobrac posortowane od najstarszego do najnowszego 6 newsow, oprocz 6 najnowszych (jak wybiore zeby posortowalo odwrotnie to wszystko dziala). Jednak pobiera 6 newsow dobrze posortowanych, ale zaczynajac od 7 do 12 (razem mam 13 rekordow).
Dziekuje za pomoc.
PZdr