Решение проблемы постраничной навигации

833
.
NURD, да я то понял что можно и без запроса обойтись, просто невижу смысла вообще туда его пихать.тем более что майскъюл скоро выпилят.
.
NURD (10.05.2012/12:55)
Ну вот как в твоей функции вывести 10 пользователей на страницу с навигацией?
В моей:
[php]$nav = new PageNav;

$query = $nav->Qeury("SELECT * FROM `users` #LIMIT");

while ( $i = mysql_fetch_ar
Зачем выборку и постраничку смешивать?
А если у вас свой класс работы с бд?
А если нужны разные типы постранички к одному листингу?
А если урл хитрожопый?
.
Screamer (10.05.2012/14:39)
NURD, да я то понял что можно и без запроса обойтись, просто невижу смысла вообще туда его пихать.тем более что майскъюл скоро выпилят.
да и что вместо него будет, интересно узнать?
.
bleakas, Я имел ввиду о поддержке расширения в пхп, вместо него будет MySQLi или PDO а может что то другое
.
Честно, ничего против ваших амбиций против не имею, но я нахожу полезным, такое простое использование навигации. Причем $nav->Query = mysql_query, с единственным различием - условная переменная #LIMIT. Возвращает все то же. И я не думаю что это как-то помешает если есть свой класс работы с SQL.
.
NURD (10.05.2012/19:48)
Честно, ничего против ваших амбиций против не имею, но я нахожу полезным, такое простое использование навигации. Причем $nav->Query = mysql_query, с единственным различием - условная переменная #LIMIT
простое?
echo navi('/wallpaper/'.$cat['id'].'/', $cat['count'], $page);

вот простое
.
я не буду обьяснять почему бд надо держать отдельно, дам маленький кусочек
public function query($q){
$this->queryCount ++;
        if($this->real_query($q)){
return new SQLResult($this);
        }else{
return false;
        }
     }

real_query быстрее чем query. а самое главное, я сюда накручу чего угодно, и по всему приложению это изменится а у тебя в каждом углу по такому куску искать и править придется

_________
так ради интереса скачал открыл..
гм..
return mysql_query( str_ireplace( $this->pars_var, $limit, $query) );
как не изящно, процедурка свое отжила и ее будут выводить, где линк на ресурс в запросе? (соединений может быть больше чем 1.
$this->rows = mysql_num_rows( str_ireplace( $this->pars_var, '', $query) );
WTF? mysql_num_rows из вот этого ("SELECT * FROM `users` #LIMIT" ? где mysql_query()?
и последнее, зачем это класс? зачем в нем бд? зачем парсинг запроса?
//Первая
            if ( $page > 2 ) echo "<input class='". $this->buttons_class ."' type='submit' name='" . $this->var . "' value='1' /> ... \n";
            //На 1 меньше чем текущая
            if ( $page > 1 ) echo "<input class='". $this->buttons_class ."' type='submit' name='" . $this->var . "' value='" . ($page - 1) . "' />\n";
                //Текущая
                echo "<input class='". $this->button_class ."' type='submit' name='" . $this->var . "' value='" . $page . "' />\n";
            //На 1 больше чем текущая
            if ( ($page + 1) <= $pages ) echo "<input class='". $this->buttons_class ."' type='submit' name='" . $this->var . "' value='" . ($page + 1) . "' />\n";
            //Последняя
            if ( ($page + 2) <= $pages ) echo " ... <input class='". $this->buttons_class ."' type='submit' name='" . $this->var . "' value='" . $pages . "' />\n";

а че ссылки не кошерно?
з.ы. это не наезд. просто я не знаю как тебя еще вразумить
.
Всё уже придумано:

$orders = DB::table('orders')->paginate($per_page);
foreach ($orders->results as $order) {
    echo $order->id;
}

echo $orders->links(); // Previous 1 2 ... 25 26 27 28 29 ... 78 79 Next


З.Ы: ссылка вверху - веб
.
L!MP, этот я знаю
.
ramzes, ну это не конкретно тебе
З,Ы: а вот тот фреймворк, что по ссылке, оч.рекомендую жаль что только недавно попал на него.
Всего: 57