[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Переход по страницам
TanaWWW
Доброго всем дня!
Может я не совсем точна указала название темы, но суть вопроса в следующем:
создаю страничку, на которую из базы данных загружаются эскизы страниц. На каждой страничке по 9 изображений ну и внизу можно переключаться по страницам.
Вот, что я навояла:



//выводим шаблоны на страницу по 9 штук, выводит в таблицу, поэтому затисавшиеся здесь <tr> и <td> это не ошибка


FOR ($i=1; $i<=3; $i++)
{
$pageCONTENT .= '
<tr valign="top">'
;

$start = ($i-1) * 3;
$query="SELECT * FROM `shablons` ORDER BY `id` DESC LIMIT $start,3";
$sql=mysql_query($query) or die (mysql_error());

WHILE($row = mysql_fetch_assoc($sql))
{
$pageCONTENT .= '<td><div class="templates_block">
<a title="Скачать шаблон" href="shablon.php?id='
.$row['id'].'""><img alt="Шаблон" src="images/'.$row['image'].'" >
<br>
Шаблон № '
.$row['id'].'
<br>
<span>'
.$row['name'].'</span>
</a>
'
;
}

$pageCONTENT .= '
</tr>

'
;}


$num_on_pege=9;//кол-во шаблонов на листе
$num_shablons= GetField("SELECT count(`id`) AS `num` FROM `shablons` " , 'num');
$num_pages=ceil($num_shablons/$num_on_pege);// кол-во листов
$num_left=3;// кол-во закладок в стороны

if(!isset($_GET['p']))
{ $PAGE=1; }
else{$PAGE=$_GET['p'];}



$pageCONTENT .= '</tr>
</tbody>
</table>'
;

$pageCONTENT .= '
<div class="page">

<b>Страницы шаблонов:</b>'
;

if($num_pages<8) //здесь идут случаи, как будут появляться страницы, укажу только первый, а то много места занимает=)
{
$i=1;
while ($i <= $num_pages)
{
$pageCONTENT .= '<a href="catalog.php?p='.$i.'" title="">'.$i.'</a>';
$i++;
}
}


............//другие случаи//
else
{
$pageCONTENT .=' несуществующая страница';
}


В общем вопрос в том, как при нажатии, предположим, на страницу 2 выводить следующие 9 шаблонов?


 ! 

М
Обрамляйте код соответствующими тэгами
kirik




Спустя 2 часа, 6 минут, 57 секунд (23.10.2010 - 18:39) T1grOK написал(а):
Какой запутанный код. Сейчас запутаем еще сильней smile.gif

$PAGE=$_GET['p'];//где-то тута извлекли номер страницы
$start = ($PAGE-1)*$num_on_pege;//получаем начальную позицию

FOR ($i=1; $i<=3; $i++)
{
$pageCONTENT .= '<tr valign="top">';

$query="SELECT * FROM `shablons` ORDER BY `id` DESC LIMIT $start,3";

$start +=3;

//и так далее

Теперь будет переходить по страницам.

Спустя 4 часа, 20 минут, 25 секунд (23.10.2010 - 23:00) TanaWWW написал(а):
T1grOK, респект и уважуха! smile.gif
Все получилось!

PS: прошу прощения у модераторов за оформление)

Спустя 7 дней, 44 минуты, 35 секунд (30.10.2010 - 23:44) TanaWWW написал(а):
Добрый день! Еще раз прошу помощи) Продолжая тему, так сказать..

Хочу сделать странички для поиска. При вводе строки запроса, выводится результат п оиска и внизу страницы. И вроде бы все хорошо, но при переходе, предположим, на вто рую страницу, как я понимаю, строка запроса не сохраняется и результат поиска уже н е соответствует введенному запросу. И еще не могу правильно пристроить оператор if. Вот что имеется на данный момент:


$num_on_pege=9;//кол-во шаблонов на листе
$num_shablons= GetField("SELECT count(`id`) AS `num` FROM `shablons` WHERE `name` LIKE ('%".$_POST['search']."%')
or `desc` LIKE ('%"
.$_POST['search']."%') or `sostav ` LIKE ('%".$_POST['search']."%')", 'num');
$num_pages=ceil($num_shablons/$num_on_pege);// кол-во листов


if(!isset($_GET['p']))
{ $PAGE=1; }
else{$PAGE=$_GET['p'];}
$start = ($PAGE-1)*$num_on_pege;//получаем начальную позицию
echo $num_shablons; // это я для контроля вывожу))



$pageCONTENT = '<div>
<table width="100%" cellspacing="0" cellpadding="0&q uot; border="0" class="d_table">
<tbody>
'
;
$pageCONTENT.= 'форма поиска
<form method="post" action="search.php">
<input type="text" " value="'
.$_POST['search'] .'" name="search" id="input" maxlength="250"&g t;
<input type="submit" value="найти"><br>'
;
$pageCONTENT .= '<br><p><div class="post">
<h2 class="title"><font color=#000000>Результат поиска: </font></h2>
</div>'
;


FOR ($i=1; $i<=3; $i++)
{
$pageCONTENT .= '
<tr valign="top">'
;

$query="SELECT * FROM `shablons`WHERE `name` LIKE ('%". $_POST['search']."%')
or `desc` LIKE ('%"
.$_POST['search']."%') or `sostav ` LIKE ('%".$_POST['search']."%')
LIMIT
$start,3";

$sql=mysql_query($query) or die (mysql_error());
$start +=3;

WHILE($row = mysql_fetch_array($sql))
{$a=str_replace('/','/mini/',$row['image']);
$pageCONTENT.= '<td><div class="templates_block"&g t;
<a title="Скачать шаблон" href="shablon.php?id='
.$row ['id'].'"><img alt="Шаблон" src="images/'.$a .'" >
<br>
Шаблон № '
.$row['id'].'
<br>
<span>'
.$row['name'].'</span>
</a>

</div></td>'
;

}

$pageCONTENT .= '
</tr>'
;
}

$pageCONTENT .= '
</tbody>
</table>'
;
$pageCONTENT .= '
<div class="page">
<b>Страницы шаблонов:</b>'
; //здесь варианты вывода страниц пош ли

if($num_pages<8)
{
$i=1;
while ($i <= $num_pages)
{
$pageCONTENT .= '<a href="search.php?p='.$i.'" title=& quot;">'.$i.'</a>';
$i++;
}
}

//и тд....



$num = GetField("SELECT count(`id`) AS `num` FROM `shablons` WHERE ` name` LIKE ('%".$_POST['search']."%')
or `desc` LIKE ('%"
.$_POST['search']."%') or `sosta v` LIKE ('%".$_POST['search']."%')", 'num');
if ($num==0)
{$pageCONTENT.= '<b> 0 </b> &nbsp (по данному запро су ничего не найдено)';}

$pageCONTENT.='</form>' ;


Спустя 10 минут, 49 секунд (30.10.2010 - 23:55) Игорь_Vasinsky написал(а):
user posted image
О господи... ну ладно мы...но вам то это зачем..вы же ДЕВУШКА....
в страшное время мы живём...

Спустя 5 минут, 58 секунд (31.10.2010 - 00:01) Игорь_Vasinsky написал(а):
что касается формированию ссылок на страницы

$pageCONTENT .= '<a href="search.php?p='.$i.'&search=".$_POST['search']."" title="1">'.$i.'</ a>';




таким образом вы предали поисковый запрос в адресной строке $_GET['search ']

остаётся тока вытаскивать его от туда и вставлять в запрос к БД

т.е. создаёте условие:

если !isset$_GET['search'] - то запрос $_POST['search';]
а если isset$_GET['search'] - то $_GET['search']

тока ту проверка на иньекцию для безопаности запроса к бд нужна будет

Спустя 3 минуты, 35 секунд (31.10.2010 - 00:05) Игорь_Vasinsky написал(а):
[php]addslashes(htmlspecialchars($_POST['search']));


и вообще зачем использывать $_POST['search'], когда удобней

$search = addslashes(htmlspecialchars($_POST['search']));


и вуаля $search - и исать меньше и безопасно...

аналогично для GET

иначе зло проникнет в вашу базу

Спустя 51 минута, 7 секунд (31.10.2010 - 00:56) TanaWWW написал(а):
да-да! Не я такая - жизнь такая))))

Спасибо, Игорь_Vasinsky! Идея ясна, но пока что-то не выводит...буду думать
Появляется ошибка такого рода: Notice: Undefined index: search in Z:\home\......\search.php on line 19

Спустя 1 час, 21 минута, 8 секунд (31.10.2010 - 02:17) phz написал(а):
Цитата (Игорь_Vasinsky @ 30.10.2010 - 21:05)
<pre class="sh_sourceCode" rel="php"><span class="sh_function">addslashes</span><span class="sh_symbol">(</span><span class="sh_function">htmlspecialchars</span><span class="sh_symbol">(</span><span class="sh_variable">$_POST</span><span class="sh_symbol">[</span><span class="sh_string">'search'</span><span class="sh_symbol">]));</span></pre>

и вообще зачем использывать $_POST['search'], когда удобней

<pre class="sh_sourceCode" rel="php"><span class="sh_variable">$search</span> <span class="sh_symbol">=</span> <span class="sh_function">addslashes</span><span class="sh_symbol">(</span><span class="sh_function">htmlspecialchars</span><span class="sh_symbol">(</span><span class="sh_variable">$_POST</span><span class="sh_symbol">[</span><span class="sh_string">'search'</span><span class="sh_symbol">]));</span></pre>

и вуаля $search - и исать меньше и безопасно...

аналогично для GET

иначе зло проникнет в вашу базу

Игорь_Vasinsky, А если мой ник: <phz>, то тогда в базе будет искать: &lt;phz&gt; после вашего htmlspecialchars($_POST['search'])... думать еще не кто не отменял. Я уже вам писал за это, и опять... Вы по каким книгам учились? В помощь радиолюбителю?

В базу mysql_real_escape_string, на выходе в браузер htmlspecialchars - всё будет классно. Достаточно.

Каких нах меньше и безопасно...

и вуаля $search - и исать меньше и безопасно... 


Помогайте на форуме когда хоть на 70% уверены в своих знаниях... Ваш пост читает много людей...

Спустя 7 часов, 7 минут, 58 секунд (31.10.2010 - 09:25) Игорь_Vasinsky написал(а):
ну ребята, вы уже зае........ вы вы так любите критиковать, когда нужно помогать, хлебом не корми..,

да и потом я не раз говорил, то принципиально в никах разрешаю использовать тка буквы и цифры, т.к. достаточно будет и всяких АлКоГоЛиКоВ, а что косается поиска то - %$search% и пусть ищет совпадения


а в 3х - если в базе ты записан как &lt;phz&gt; - то и после обработки $_POST['search'] - выходит из <phz> - &lt;phz&gt;

TanaWWW - мож я в синтаксисе наксарезил...ковычка не там или пропустил.

Спустя 21 минута, 27 секунд (31.10.2010 - 09:46) Игорь_Vasinsky написал(а):
mysql_real_escape_string[b] так то я согласен поспешил

просто еслиб исправил, а то..... понаписал

Спустя 2 часа, 15 минут, 46 секунд (31.10.2010 - 12:02) TanaWWW написал(а):
Что-то не получается. Когда я перехожу на новую страницу, данные из формы все равно не передаются. Я уже и сессию пыталась пристроить (туда помещаю $_POST['search')....

Спустя 5 минут, 10 секунд (31.10.2010 - 12:07) inpost написал(а):
Поиск надо делать через $_GET. ссылки делай в таком виде:
index.php?SEARCH=BEER&PAGE=1
index.php?search=beer&page=2
Это надо прописать в коде страниц.

Спустя 27 минут, 28 секунд (31.10.2010 - 12:35) TanaWWW написал(а):
О, точно, post-запрос здесь, в общем-то, ни к чему.
Теперь работает!
Ребят, спасибо огромное за помощь!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.