|
|
|
| Привет! Помогите. Такая проблема, выводит по поиску только на первой странице, на остольных страницах пусто. И еще проблема что выводит ссылки на все страницы.
Вот код:
<form action="poisk.php" method="post">
<td><input type="text" name="poisk" class="form-text" maxlength="30" size="35" value="<? $_GET['poisk']; ?>Поиск по прайсу..." onblur="if(this.value=='') this.value='Поиск по прайсу...';" onfocus="if(this.value=='Поиск по прайсу...') this.value='';" border="0"></td>
<td width="10" height="25">
<img src="images/1_19.jpg" width="10" height="25" alt=""></td>
<td width="38" height="25">
<input style="border:0px; width:38; height:25; background:url('images/1_20.jpg')" type="submit" name="go1" value=""></td>
</form>
|
<?
include "setup/opt.php";
mysql_select_db($DB);
$poisk = '';
if (isset($_POST['poisk'])){
$poisk = strip_tags($_POST['poisk']);
}
$poisk = trim($poisk);
if (!empty($poisk)){
$count_per_page = 16;
$page = 1;
$result = mysql_query('SELECT round(count(id)/' . $count_per_page . ') FROM PRICELIST');
$counts = mysql_fetch_row($result);
$page_max = $counts[0];
if (!empty($_GET['page'])) {
$page = (int) $_GET['page'];
if ($page > $page_max)
$page = $page_max;
if ($page < 1)
$page = 1;
}
$poisk=addslashes($poisk);
$result = mysql_query ('SELECT * FROM PRICELIST WHERE nametovar LIKE "%'.$poisk.'%" LIMIT ' .(($page - 1) * $count_per_page). ', ' .$count_per_page);
echo "<td valign='right width='12%' height='15px' align='center' bgcolor=#FFFFFF>Артикул</td>
<td valign='right width='28%' height='' align='center' bgcolor=#FFFFFF>Наименование изделий</td>
<td valign='right width='45%' height='' align='center' bgcolor=#FFFFFF>Описание</td>
<td valign='right width='10%' height='' align='center' bgcolor=#FFFFFF>Цена</td>
<td valign='right width='5%' height='' align='center' bgcolor=#FFFFFF>картинка</td>";
$libr = mysql_num_rows($result);
if ($libr!==0){
while ($row = mysql_fetch_assoc($result)){
echo "</tr>";
echo "<tr>";
echo '<td align=left width=12% height=10% bgcolor=#FFFFFF>'.$row['artikul'].'</td><td width=28% align=left bgcolor=#FFFFFF height=10px>'.$row['nametovar'].'</td><td width=45% align=left bgcolor=#FFFFFF height=10px>'.$row['opisanie'].'</td><td width=10% align=left bgcolor=#FFFFFF height=10px>'.$row['cena'].'</td><td width=5% align=left bgcolor=#FFFFFF height=5px><img src="kartinki/' . $row['image'] .'" width=75px height=75px></td>';
}
echo '</tr><tr><td align="center" colspan="6" bgcolor=#FFFFFF>';
for ($i=1; $i<$page_max; ++$i) {
if ($i != $page) {
echo '<a href="?page=' . $i . '&poisk='.$poisk.'">'.$i.'</a> ';
}
else {
echo ''.$i.' ';
}
}
echo '</td>';
}
}
?>
|
| |
|
|
|
|
|
|
|
для: RuslanMRP
(30.09.2010 в 14:33)
| | >value="<? $_GET['poisk']; ?>Поиск по прайсу
$_GET['poisk'] не будет заполнен когда форма отправляется методом post
>$poisk = '';
if (isset($_POST['poisk'])){
$poisk = strip_tags($_POST['poisk']);
}
$poisk = trim($poisk);
здесь наоборот при переходе по ссылкам $poisk = trim('');
> SELECT round(.....
что-то не вяжется с подсчётом колличества страниц , CEIL() или FLOOR() ещё понятно
к тому-же for ($i=1; $i<$page_max; ++$i) отталкивается от общего колличества записей а не от найденного
, не хватает что-то вроде SQL_CALC_FOUND_ROWS | |
|
|
|
|
|
|
|
для: heed
(01.10.2010 в 10:24)
| | Не работает, передаю poisk как вы и сказали POSTом <? $_POST['poisk']; ?>
Вместо round(count(id) вставил ceil(id). По поводу SQL_CALC_FOUND_ROWS я так и не понял. В общем работае выводит по 16, но не показывает не одной ссылки на страницы.
Вы бы не могли наглядно привести пример как это правильно сделоть. Спасибо! | |
|
|
|
|
|
|
|
для: RuslanMRP
(01.10.2010 в 10:41)
| | я-бы просто сказал что надо переделать всё и форму под $_GET
, но надо переделать вообще всё.
>$poisk = strip_tags($_POST['poisk']);
это единственная фильтрация, того что, попадает в sql-запрос, притом ещё с like
// на вывод переменных в форме и из таблиц даже не смотрел
SELECT SQL_CALC_FOUND_ROWS * FROM PRICELIST ......
...
SELECT FOUND_ROWS()
получение колличества результатов предидущего запроса с SQL_CALC_FOUND_ROW как если-бы он был без LIMIT | |
|
|
|
|
|
|
|
для: heed
(01.10.2010 в 12:42)
| | Ничего не понимаю. ПОМОГИТЕ НАПИСАТЬ!!!!!!!! ОЧЕНЬ НУЖНО! | |
|
|
|
|
|
|
|
для: RuslanMRP
(01.10.2010 в 13:41)
| | чего немогу - того не могу. сейчас мои последние секунды здесь на ближайшие пару дней точно :)
Вообще не понимаю как можно что-то делать без кипы мануалов на диске.
Хотя как-то раньше чуть заслышав какое-нибудь SQL_CALC_FOUND_ROWS сразу-же его в гугль заряжал.
кстати вполне возможно даже здесь на форуме какие куски кода по темам уже появлялись.
а так я-бы fulltext использовал, если конечно в прайселистах там не одни и те-же слова через строчку. | |
|
|
|
|
|
|
|
для: RuslanMRP
(01.10.2010 в 13:41)
| | >>Ничего не понимаю. ПОМОГИТЕ НАПИСАТЬ!!!!!!!! ОЧЕНЬ НУЖНО!
Вот готовый, пользуйтесь | |
|
|
|
|
|
|
|
для: Николай2357
(01.10.2010 в 17:31)
| | БОЛЬШОЕ СПАСИБО!!!!!!!! ОЧЕНЬ БЛАГОДАРЕН! | |
|
|
|