Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Постраничная разбивка табицы из базы 
V
    Опции темы
studentigor
Дата 30.12.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 397
Регистрация: 14.11.2008

Репутация: нет
Всего: нет



Доброго времени суток!!!
Код

for($nn=$this->start;$nn<=$this->end;$nn++)
            {
                do
                    {
                        $table = $table.'<tr><td>'.$n.'</td>';
                        $table = $table.'<TD>'.$myrow[$nn]['kat_tovara'].'</TD>';
                        $table = $table.'<TD>'.$myrow[$nn]['name'].'</TD>';
                        $table = $table.'<TD>'.$price = ($myrow[$nn]['price']-(($myrow[$nn]['price']/100)*$myrow[$nn]['VIP'])).'</TD>';
                        $table = $table.'<TD>'.$price = ($myrow[$nn]['price']-(($myrow[$nn]['price']/100)*$myrow[$nn]['regular'])).'</TD>';
                        $table = $table.'<TD>'.$price = ($myrow[$nn]['price']-(($myrow[$nn]['price']/100)*$myrow[$nn]['beginer'])).'</TD>';
                        $table = $table.'<TD>'.$myrow[$nn]['valyuta'].'</TD></TR>'; 
                    $n++;
                    }
                while($myrow[$nn] = mysql_fetch_array($result));
            }    

Хочу сделатьследующее:
Есть таблица в базе, у меня в ней 21 запись. Я хочу сделать чтобы на первой странице были записи от1 - 15, и соответственно на второй с 16-21.
Данный код должен это делать. 
$this->start - это переменная отвечает за начальную точку (для 1й страницы = 1, для 2й = 16, ...)
$this->end - Это конечная точка(для 1й странице = 15, и для 2й ,в моем случае, = 21)
И у меня не выдает ничего, ни таблицы, ни ошибок. 
Посмотрите пожалуйста. мож кто знает в чем моя ошибка. если нужно еще что нить знать - пишите, я раскаже.

PM MAIL   Вверх
patap
Дата 30.12.2009, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 3
Всего: 40



добавьте это в начало скрипта 
Код
error_reporting(E_ALL);


и вообще, Вам известна разница между циклами do...while и while?

и думаю стоит сначала убедиться что result действительно вернул то, что нужно


для постраничного разбиения разумнее использовать "LIMIT n, m" в SQL запросе, передавая в него n и m

Это сообщение отредактировал(а) patap - 30.12.2009, 14:54


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
studentigor
Дата 30.12.2009, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 397
Регистрация: 14.11.2008

Репутация: нет
Всего: нет



Разницу знаю.
Дело в том что когда скрипт без цикла фор - выводит все 21 запись.
добавил то что Вы мне посоветовали выдало просто число "6135"
PM MAIL   Вверх
Ипатьев
Дата 30.12.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



studentigor, неужели вы не понимаете, что ваш скрипт, по идее, должен 15 раз вывести 21 сообщение из базы данных?
PM MAIL   Вверх
studentigor
Дата 30.12.2009, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 397
Регистрация: 14.11.2008

Репутация: нет
Всего: нет



Так да. Спасибо
а если поменять for и while местами
тогда по идее должно выполнять то что мне нужно?

Добавлено через 5 минут и 10 секунд
И вот что самое главное, оставлью только один цикл while, и все работает, все выводит.
PM MAIL   Вверх
Ипатьев
Дата 30.12.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



Цитата(studentigor @  30.12.2009,  15:27 Найти цитируемый пост)
а если поменять for и while местами

от перемены мест слагаемых сумма не меняется - учили нас в третьем классе! начальной школы.
множителей это тоже касается
что ж за программисты-то пошли такие, уже и арифметику не знают

какая разница, 15 раз выполнить по 21 разу, или 21 раз вполнить 15 действий?

зачем вообще заключать один циал в другой, умножая итерации?

если карусель делает 10 оборотов, а надо прокатиться только 5, то по вашей логике надо купить ПЯТЬ билетов и откатать 5 раз по 10 кругов!
вот логика ваших циклов
PM MAIL   Вверх
studentigor
Дата 30.12.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 397
Регистрация: 14.11.2008

Репутация: нет
Всего: нет



все понял!!!
PM MAIL   Вверх
bars80080
Дата 30.12.2009, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



у тебя должен быть один цикл for

здесь же куча тем про постраничную навигацию. поищи по разделу
PM MAIL WWW   Вверх
Ипатьев
Дата 30.12.2009, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



Цитата(studentigor @  30.12.2009,  15:51 Найти цитируемый пост)
все понял!!! 

рановато для такого заявления.

в простейшем варианте можно сделать только циклом. for или while 
даже лучше будет, чтобы понятиь, наконец, что такое цикл

но потом надо будет научиться пользоваться базой данных. 
PM MAIL   Вверх
studentigor
Дата 30.12.2009, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 397
Регистрация: 14.11.2008

Репутация: нет
Всего: нет



у меня просто есть рабочий скрипт который всё это делает нормально, но я его писал уже давненько и не в ооп. 
Хотел просто всё это сделать в классе. чуть не получается
Что-то я не дружу с классами.
Извините что отвлек. 
Всем спасибо!!!
PM MAIL   Вверх
Ипатьев
Дата 30.12.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



проблема здесь, к сожалению, совсем не в ООП

PM MAIL   Вверх
studentigor
Дата 30.12.2009, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 397
Регистрация: 14.11.2008

Репутация: нет
Всего: нет



Но так у меня ведь получилось сделать.
Значит моя проблема - ооп. И там впринципе все переменные получил, но с выводом таблици - проблема.
там у меня просто когда я считаю сколько у меня записей - я базу загоняю в двумерный массив
а потом, уже в форе - вывожу ту строчку которая мне нужна.
а здесь надо еще почитать чучуть работу с масивами.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.