mysql - LIMIT in SQL query with left join -


i mam sql query me reads categories , want paged category have used sql query me statements:

public function fetchchildrennodess($start,$end){         $q_offset = (int)$start;         $q_limit = (int)($end - $start);  $query= "select k1.id id ".config::tablekategorie." k1 left join ".config::tablekategorie."  k2 on k2.nlft<k1.nlft , k2.nrgt>k1.nrgt , k2.nlft>".$this->l." , k2.nrgt<".$this->r." k1.nlft>".$this->l." , k1.nrgt<".$this->r." , k2.id null  order k1.nlft ";           $i=0; $ret=array();         // $hash=$this->hash().'_part_'.$start.'_'.$end;                $q=mysql_query($query."limit 0, 8 ",commercedb::$db);              while($r=mysql_fetch_assoc($q)){                  $ret[]=new kategoria($r['id']);           };           return $ret;          } 

if use limit here

$q=mysql_query($query."limit 0, 8 ",commercedb::$db); 

so listed 9 subsubcategory , go next subcategory. subcategory writes , 9 categories too. need listing include maximum 8 results. thank you

in solution, function should have 1 parameter, can increment (next) or decrement (prev). assume query , other codes work fine.

page parameter in sequence of 1-n. , not let user specify end value if goal limit recordset 8 rows.

public function fetchchildrennodess($page){     $range_const = 8; // # of rows show; constant value     if( $page > 0 ) // if page 0 or less ???        $start = ($range_const * ($page-1)); // start limit    else        $start = 0;     $end = $range_const - $start; // end limit     $query= "select k1.id id ".config::tablekategorie." k1 left join ".config::tablekategorie."  k2 on k2.nlft<k1.nlft , k2.nrgt>k1.nrgt , k2.nlft>".$this->l." , k2.nrgt<".$this->r." k1.nlft>".$this->l." , k1.nrgt<".$this->r." , k2.id null  order k1.nlft ";    $query = $query . ' limit ' . $start . ',' . $end . ';'     $i=0; $ret=array();     $q = mysql_query($query,commercedb::$db);    while($r=mysql_fetch_assoc($q)){        $ret[]=new kategoria($r['id']);    } } 

test case

 +----------+--------+------+ | page num | $start | $end | +----------+---------------+ |    1     |   0    |   8  | |    2     |   8    |   8  | |    3     |  16    |   8  | |    4     |  24    |   8  | |          |        |      | |    0     |   0    |   8  | |   -1     |   0    |   8  | +----------+--------+------+ 

Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -