Ogólnie wygląda to tak:
-wyszukiwarka,
-kategorie i podkategorie,
-stronnicowanie,
-filtrowanie ogłoszeń(typ: sprzedaj, kup, itp.)
Teraz mam problem, jak patrzę na kod, to odechciewa mi się cokolwiek przy nim robić, a muszę dodać podkategorie podkategorii( kategoria -> podkategoria -> jeszcze jedna podkategoria ). Przy takim czymś, nazwijmy to "kodem" musiałbym dodać ok. 5 if'ów.
Jak widać korzystam ze smartów. Oto plik:
<?php require('./libs/Smarty.class.php'); $smarty = new Smarty; require('./inc/config.php'); $pg = $_GET['pg']; $katg = $_GET['kat']; $pod = $_GET['pod']; $filter = $_GET['filter']; $str = $_GET['str']; $search = $_GET['search']; $sercz = $_POST['search']; $get_f = $_GET['fraza']; if(!$search == 'go') { $podkategoria = mysql_fetch_array(mysql_query("SELECT * FROM `kategories` WHERE `id`='$pod' LIMIT 1")); $kategories[] = $b; } $smarty -> assign('kategories', $kategories); } if(!$str) { $str = 1; $strona = 0; } else { $strona = $str-1; } $ilosc_strona = 2; $start = $strona*$ilosc_strona; $koniec = $ilosc_strona; if ($search == 'go' OR $_GET['fraza']) { $fraza = $sercz; $fraza = $_GET['fraza']; } if($filter) { $SQL = mysql_query("SELECT count(*) FROM ogl WHERE tytul LIKE '%$fraza%' AND typ = '$filter' AND akt = 1;"); $zap = mysql_query("SELECT * FROM ogl WHERE tytul LIKE '%$fraza%' AND `typ` = '$filter' AND akt = 1 ORDER BY `data` DESC LIMIT $start, $koniec;"); } else { $zap = mysql_query("SELECT * FROM ogl WHERE tytul LIKE '%$fraza%' AND akt = 1 ORDER BY `data` DESC LIMIT $start, $koniec;"); } $tytul = 'Wyniki Wyszukiwania'; } elseif(!$pod AND !$filter) { $tytul = $kategoria['name']; $zap = mysql_query("SELECT * FROM ogl WHERE kat = $pg AND akt = 1 ORDER BY `data` DESC LIMIT $start, $koniec"); $tytul = ''.$kategoria['name'].' > '.$podkategoria['name'].''; $zap=mysql_query("SELECT * FROM ogl WHERE kat = $pg AND podkat = $pod AND akt = 1 ORDER BY `data` DESC LIMIT $start, $koniec"); $tytul = ''.$kategoria['name'].' > '.$podkategoria['name'].''; $SQL = mysql_query("SELECT COUNT(*) FROM `ogl` WHERE `kat` = '$pg' AND `typ` = '$filter' AND `podkat` = '$pod' AND `akt` = '1'"); $zap = mysql_query("SELECT * FROM `ogl` WHERE `kat` = '$pg' AND `typ` = '$filter' AND `podkat` = '$pod' AND `akt` = '1' ORDER BY `data` DESC LIMIT $start, $koniec"); $tytul = $kategoria['name']; $SQL = mysql_query("SELECT COUNT(*) FROM `ogl` WHERE `kat` = '$pg' AND `typ` = '$filter' AND `akt` = '1'"); $zap = mysql_query("SELECT * FROM `ogl` WHERE `kat` = '$pg' AND `typ` = '$filter' AND `akt` = '1' ORDER BY `data` DESC LIMIT $start, $koniec"); } if($ilosc == 0) { $smarty->assign('error','<div class="error">Brak pasujących ogłoszeń.</div>'); } for ( $i=0; $i<$ile; $i++ ) { $wiersz['czas'] = time_difference($end_time); $ogl[$i] = $wiersz; } $smarty -> assign('ogl', $ogl); $smarty->assign('czas', $wiersz['czas']); $smarty->assign('ilosc_stron', $ilosc_stron); $smarty->assign('czas', $czas['data']); $smarty->assign('debug', '{debug: true}'); $smarty->assign('tytul',$tytul); $smarty->assign('filter', $filter); $smarty->assign('pode', $pod); $smarty->assign('str', $str); $smarty->assign('pg',$pg); $smarty->assign('fraza',$fraza); $smarty->assign('search',$search); $smarty->assign('kate', $kategoria['name']); $smarty->assign('pod', $podkategoria['name']); $smarty->assign('kateid', $kategoria['id']); $smarty->assign('podid', $podkategoria['id']); $smarty->display('show.tpl'); ?>