Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: постраничная навигация и поиск
 
 автор: vorobey   (21.01.2009 в 22:49)   письмо автору
 
 

помогите разобратся. делаю постраничну навигация для поиска
из формы летит пост search (название фирмы) присваивается переменной $search ,находится колличество товара этой фирмы
далее из базы выводится в таблицу и собственно печатается на сайте- но как только я нажимаю
на следующею страницу то выводится ошибка в базе и ссылается на эти строки
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
$myrow=mysql_fetch_array($result);

while ($myrow=mysql_fetch_array ($result));
понятное дело пост теряется и записей находит ровно=0
если заменить переменную $search явно допустим SHARP, то вся навигация прекрасно работает
вот собственно и вопрос как решить эту проблему чтоб
из POST извлекалась переменноя напротяжении всех нажатий на переходы страницы и ?

<?
if (isset($_POST['search'  ])){$search=$_POST['search'];}
//колличество записей на странице
$num =2;
$page $_GET['page'];
//к-во сообщений в базе данных
$result00 mysql_query("SELECT COUNT(*)  FROM firmabase WHERE title='$search' ",$db );
$temp mysql_fetch_array($result00);
$posts $temp[0];
print(
"проверка $posts");/всего найдено
//общее число страниц
$total = (($posts 1) / $num) + 1;
$total =  intval($total);
//начало сообщений для текущей страницы
$page intval($page);
if(empty(
$page) or $page 0$page 1;
  if(
$page $total$page $total;
$start $page $num $num;

$result=mysql_query("select id,title,date,description,price from firmabase WHERE title='$search' order by id desc LIMIT $start,$num",$db);
$myrow=mysql_fetch_array($result);
do { 
printf ("<table  valign='left' class='index'></table>",$myrow['id'],$myrow['title'],$myrow['id'],$myrow['date'],$myrow['description'],$myrow['price']);
   }  
while (
$myrow=mysql_fetch_array ($result)); 
// Проверка нужны  стрелки назад
if($page!= 1)$pervpage='<a href=serch_avto.php?avto='.$avto.'&page=1>Первая</a><a href=serch_avto.php?avto='.$avto.'&page='.($page-1).'>zzz</a>';
// Проверка нужны  стрелки вперед
if ($page != $total$nextpage '  <a href=serch_avto.php?avto='.$avto.'&page='. ($page 1) .'>zzz</a>  <a href=serch_avto.php?avto='.$avto.'&page=' .$total'>Последняя</a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page 0$page5left ' <a href=serch_avto.php?avto='.$avto.'&page='. ($page 5) .'>'. ($page 5) .'</a> | ';
if(
$page 0$page4left ' <a href=serch_avto.php?avto='.$avto.'&page='. ($page 4) .'>'. ($page 4) .'</a> | ';
if(
$page 0$page3left ' <a href=serch_avto.php?avto='.$avto.'&page='. ($page 3) .'>'. ($page 3) .'</a> | ';
if(
$page 0$page2left ' <a href=serch_avto.php?avto='.$avto.'&page='. ($page 2) .'>'. ($page 2) .'</a> | ';
if(
$page 0$page1left ' <a href=serch_avto.php?avto='.$avto.'&page='. ($page 1) .'>'. ($page 1) .'</a> | ';

if(
$page <= $total$page5right ' | <a href=serch_avto.php?avto='.$avto.'&page='. ($page 5) .'>'. ($page 5) .'</a>';
if(
$page <= $total$page4right ' | <a href=serch_avto.php?avto='.$avto.'&page='. ($page 4) .'>'. ($page 4) .'</a>';
if(
$page <= $total$page3right ' | <a href=serch_avto.php?avto='.$avto.'&page='. ($page 3) .'>'. ($page 3) .'</a>';
if(
$page <= $total$page2right ' | <a href=serch_avto.php?avto='.$avto.'&page='. ($page 2) .'>'. ($page 2) .'</a>';
if(
$page <= $total$page1right ' | <a href=serch_avto.php?avto='.$avto.'&page='. ($page 1) .'>'. ($page 1) .'</a>';

   
// Вывод меню если страниц больше одной
if ($total 1){
Error_Reporting(E_ALL & ~E_NOTICE);
echo 
"<div class=\"pstrnav\">";
echo 
$pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo 
"</div>"; } 

  Ответить  
 
 автор: OLi   (21.01.2009 в 23:23)   письмо автору
 
   для: vorobey   (21.01.2009 в 22:49)
 

Лишний ...$myrow=mysql_fetch_array($result); .... и цикл ужасный уберите, курс Е.П неудачен, читайте лучше справку на php.su!!!

  Ответить  
 
 автор: vorobey   (21.01.2009 в 23:39)   письмо автору
 
   для: OLi   (21.01.2009 в 23:23)
 

я знаюч то лишний
mysql_fetсh_arrey
про цыкл непонял (почему ужасный и в каком месте?) смысл в том что все работает если пременную задовать явно не через пост-как это исправить?

  Ответить  
 
 автор: Николай2357   (21.01.2009 в 23:52)   письмо автору
 
   для: vorobey   (21.01.2009 в 23:39)
 

Вот тут почитайте, что бы снова не разводить бадягу.

  Ответить  
 
 автор: vorobey   (22.01.2009 в 00:41)   письмо автору
 
   для: Николай2357   (21.01.2009 в 23:52)
 

print("проверка $posts");
в этой строке проверка на количество найденых результатов-после щелчка по след странице результатов ровно 0 неужели их убивает
do while
-?? действительно развели Вы там бодягу , нестоит обсерать чела-он пытается заработать бабло как может

  Ответить  
 
 автор: BinLaden   (22.01.2009 в 00:45)   письмо автору
 
   для: vorobey   (22.01.2009 в 00:41)
 

> нестоит обсерать чела-он пытается заработать бабло как может

Воров тоже не стоит трогать -- они зарабатывают как могут.

  Ответить  
 
 автор: Trianon   (22.01.2009 в 00:55)   письмо автору
 
   для: BinLaden   (22.01.2009 в 00:45)
 

похоже, Вы не того человека мудаком назвали.
на нем бабло рубят с моском вперемешку - он же и доволен за бизнес переживает ...

  Ответить  
 
 автор: Николай2357   (22.01.2009 в 00:52)   письмо автору
 
   для: vorobey   (22.01.2009 в 00:41)
 

Я ни кого не об... не имел ничего против него лично, но не ужели не очевидно, что вот так не только правильно, но еще и проще:
<?
while ($myrow mysql_fetch_array ($result)); 

printf ("<table  valign='left' class='index'></table>",$myrow['id'],$myrow['title'],$myrow['id'],$myrow['date'],$myrow['description'],$myrow['price']); 
}

  Ответить  
 
 автор: BinLaden   (22.01.2009 в 00:55)   письмо автору
 
   для: Николай2357   (22.01.2009 в 00:52)
 

Так, к слову, неверно.

  Ответить  
 
 автор: vorobey   (22.01.2009 в 20:24)   письмо автору
 
   для: Николай2357   (22.01.2009 в 00:52)
 

все сделал.работает while .точку с запятой убрал
Вопрос был совсем другой почему переменноя search теряется при нажатии на переход к последующим страницам
может while ее убивает?
может сессия получается другой х.з. Как вообще решить это?

  Ответить  
 
 автор: Николай2357   (22.01.2009 в 20:30)   письмо автору
 
   для: vorobey   (22.01.2009 в 20:24)
 

Ответ на поверхности. Каким образом Вы её передаёте то? Ведь на новой странице этой переменной нет совсем. Недавно обсуждалась эта тема, сейчас посмотрю. Вот.

  Ответить  
 
 автор: vorobey   (22.01.2009 в 21:26)   письмо автору
 
   для: Николай2357   (22.01.2009 в 20:30)
 

получаю её
if (isset($_POST['search'])){$search=$_POST['search'];}
2 строчка
по вашей ссылке у меня аналогичноя проблема, только сессия меня запутала вовсе ...

  Ответить  
 
 автор: nikita2206   (22.01.2009 в 21:36)   письмо автору
 
   для: vorobey   (22.01.2009 в 21:26)
 

да не передаётся пост'овый массив с одной страницы, на другую, или сделай чтоб ссылки на страницы отправляли форму в которой будет строка поиска(скрытая от юзера с помощью стилей), или делай не в пост, а в гет.

  Ответить  
 
 автор: Николай2357   (22.01.2009 в 21:58)   письмо автору
 
   для: vorobey   (22.01.2009 в 21:26)
 

Я же спросил как передаете, а не как принимаете... Не хотите сессию, воспользуйтесь скриптом Trianon'a. Или поставьте скрытое поле, только прятать его нужно не стилями, есть для этого hidden. Главное, что бы на каждой странице были данные для поика.

  Ответить  
 
 автор: nikita2206   (22.01.2009 в 22:12)   письмо автору
 
   для: Николай2357   (22.01.2009 в 21:58)
 

да, сессиями былобы неплохо, Николай, а что за скрипт Trianon давал?

  Ответить  
 
 автор: Николай2357   (22.01.2009 в 22:18)   письмо автору
 
   для: nikita2206   (22.01.2009 в 22:12)
 

Ну вот тут http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=61379

  Ответить  
 
 автор: vorobey   (22.01.2009 в 22:29)   письмо автору
 
   для: Николай2357   (22.01.2009 в 21:58)
 

<td  valign="top"><p>выберите марку из списка</p>
        <form action="serch_tov.php" method="POST">
          <select  class="textfield" name="search">
          <option value="sony">sony</option>
           ..................................................................
          <option value="shrp">sharpI</option>
          </select><input name="submit_s" type="submit" class="b1"  value=" поиск">
        </form>
 </td>
вот так передаю

  Ответить  
 
 автор: Николай2357   (22.01.2009 в 22:50)   письмо автору
 
   для: vorobey   (22.01.2009 в 22:29)
 

Ладно, видимо Вы не понимаете о чём я спрашиваю. Почитайте где нибудь о взаимодействии клиент-сервер.
<?
session_start
();
$search = isset($_POST['search'])?$_POST['search']:null;
$_SESSION['search'] = (get_magic_quotes_gpc())? mysql_escape_string(stripslashes($search)):mysql_escape_string($search);
$_SESSION['search'] = ($search)?$search:$_SESSION['search'];

//колличество записей на странице 
$num =2
$page $_GET['page']; 
//к-во сообщений в базе данных 
$result00 mysql_query("SELECT COUNT(*)  FROM firmabase WHERE title='".$_SESSION['search']."' ",$db );
// И так далее. Поменяйте ниже $search на $_SESSION['search']

  Ответить  
 
 автор: vorobey   (22.01.2009 в 23:15)   письмо автору
 
   для: Николай2357   (22.01.2009 в 22:50)
 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:
работает аналогично только появились вот эти предупреждения вверху страницы

  Ответить  
 
 автор: nikita2206   (22.01.2009 в 23:24)   письмо автору
 
   для: vorobey   (22.01.2009 в 23:15)
 

функция session_start() отсылает браузеру заголовок(хедер), эти заголовки должны отправлятся перед любой другой информацией в браузер, тоесть перед всеми echo и print.
лучше всего поставь session_start в самое начало сценария

  Ответить  
 
 автор: Николай2357   (22.01.2009 в 23:35)   письмо автору
 
   для: vorobey   (22.01.2009 в 23:15)
 

Проверьте пробелы перед <? заодно, их быть не должно.

  Ответить  
 
 автор: nikita2206   (22.01.2009 в 22:25)   письмо автору
 
   для: vorobey   (22.01.2009 в 21:26)
 

vorobey,
вот здесь: if (isset($_POST['search'])){$search=$_POST['search'];}

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

П.С.

Вот такую функцию я написал для постраничной навы, впринципе вывод страниц сдерт с софттаймовского, хотя я это и с нуля написал, к тому же сидя в метро.:


<?
function pages($querystr$tabname){
    
$db $GLOBALS['db'];
    
$query 'SELECT COUNT(*) FROM '.$tabname.' '.$querystr;
    
$res mysql_query($query$db);
    
$count mysql_fetch_array($res);
    
$res mysql_query("SELECT * FROM options WHERE name LIKE 'maxcountposts'"$db);
    
$countforpage mysql_fetch_array($res);
    if(!isset(
$_GET['page'])) $page 1;
    else 
$page $_GET['page'];
    if(
$page 1$page 1;
    
$start = ($page-1)*$countforpage['value'];
    if(
$start $count[0]) $start 0;
    
$end $countforpage['value'];
    
$query1 'SELECT * FROM '.$tabname.' '.$querystr.' LIMIT '.$start.', '.$end;
    
$data['query'] = $query1;
    
    
$pagecount $count[0]/$countforpage['value'];
    if(
preg_match('/\./'$pagecount)) $pagecount++;
    
$pagecount intval($pagecount);
    
$showpages '';
    
    
$adress getenv("SCRIPT_NAME");
    
$uri getenv("QUERY_STRING");
    if(
preg_match('/page=\d+/'$uri)){
        if(
preg_match('/&page=\d+/'$uri)){
            
$uri preg_replace('/(.*)&page=\d+(.*)/''\1\2'$uri);
        }
        if(
preg_match('/^page=\d+/'$uri)){
            
$uri preg_replace('/^page=\d+(.*)/''\1'$uri);
        }
    }
    if(empty(
$uri)){
        
$document_url $adress.'?page=';
    }else{
        
$document_url $adress.'?'.$uri.'&page=';
    }
    
    
    if(
$page 1$showpages .= '<a href="'.$document_url.($page 1).'">&larr;</a>';
    else 
$showpages .= '<a href="#" id="selectedpage">&larr;</a>';
    if(
$page 1$showpages .= '<a href="'.$document_url.'1">1</a>...';
    if(
$page 0$showpages .= '<a href="'.$document_url.($page 3).'">'.($page 3).'</a>';
    if(
$page 0$showpages .= '<a href="'.$document_url.($page 2).'">'.($page 2).'</a>';
    if(
$page 0$showpages .= '<a href="'.$document_url.($page 1).'">'.($page 1).'</a>';
    
$showpages .= '<a href="#" id="selectedpage">'.$page.'</a>';
    if(
$page <= $pagecount$showpages .= '<a href="'.$document_url.($page 1).'">'.($page 1).'</a>';
    if(
$page <= $pagecount$showpages .= '<a href="'.$document_url.($page 2).'">'.($page 2).'</a>';
    if(
$page <= $pagecount$showpages .= '<a href="'.$document_url.($page 3).'">'.($page 3).'</a>';
    if(
$page <= $pagecount$showpages .= '...<a href="'.$document_url.$pagecount.'">'.$pagecount.'</a>';
    if(
$page $pagecount$showpages .= '<a href="'.$document_url.($page 1).'">&rarr;</a>';
    else 
$showpages .= '<a href="#" id="selectedpage">&rarr;</a>';
    
$showpages '<div class="pages">'.$showpages.'</div>';
    
$showpages = ($pagecount != 1) ? $showpages '';
    
$data['pages'] = $showpages;
    
    return 
$data;
}



Эта функция в качестве аргументов принимает:
1. $querystr
здесь мы пишем запрос к БД, например если общий запрос к БД должен выглядеть вот-так: "SELECT * FROM 'table' [[[WHERE 'var' LIKE '%$subvar%' ORDER BY id DESC]]] LIMIT $i, $count"
то здесь мы напишем то что в квадратных скобках: WHERE 'var' LIKE '%$subvar%' ORDER BY id DESC
2. $tabname
по названию понятно что это имя таблицы к которой обращаемя.

В итоге эта функция выведет массив с двумя индексами: query и pages

query это запрос к ДБ, который надо будет сделать, просто пишите mysql_query($data['query']);
pages выведет странички для пользователя

Забыл сказать что в бд должна быть таблица с названием options и там запись... вообщем вот вам дамп:

CREATE TABLE `options` (
  `id` int(10) NOT NULL auto_increment,
  `name` varchar(20) NOT NULL,
  `showname` varchar(25) NOT NULL,
  `value` text NOT NULL,
  `about` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;

INSERT INTO `options` VALUES (2, 'maxcountposts', 'Кол-во постов в странице', '6', 'Максимальное кол-во постов на странице.');

  Ответить  
 
 автор: BinLaden   (21.01.2009 в 23:56)   письмо автору
 
   для: vorobey   (21.01.2009 в 23:39)
 

Видеокурс мудака Евгения Попова ест мозги! :)

  Ответить  
 
 автор: Рома   (22.01.2009 в 23:25)   письмо автору
 
   для: vorobey   (21.01.2009 в 22:49)
 

я вот так делал, когда мне надо было держать в памяти запрос

session_start();
if (isset($_POST['search'])){$search=$_POST['search'];$_SESSION['search']=$_POST['search'];}
if (!isset($_SESSION['search'])) $search="";


неправильно немного, но примерно так

  Ответить  
 
 автор: Николай2357   (22.01.2009 в 23:32)   письмо автору
 
   для: Рома   (22.01.2009 в 23:25)
 

>неправильно немного, но примерно так
Вы считаете что немного?

  Ответить  
 
 автор: Рома   (23.01.2009 в 00:09)   письмо автору
 
   для: Николай2357   (22.01.2009 в 23:32)
 

я просто подругому пишу код

сначала объявляю все нужные переменные
if(!isset($var1)){$id1=0;}else{$id1=1;}
if(!isset($var2)){$id2=0;}else{$id2=1;}

потом идет код

потом html код зависящий от того чему равен $id - 0 или 1


и если в начале определить, что не существует $_session['search'], значит идентификатор будет равен нулю. следовательно меню поиска(и его результаты) не нужно, так как оно не используется, нужно лишь окошко с кнопкой.

у меня способ работает

  Ответить  
 
 автор: nikita2206   (22.01.2009 в 23:39)   письмо автору
 
   для: Рома   (22.01.2009 в 23:25)
 

тут самое главное, чтоб был какойто валидатор того, что юзер именно поиск юзает, а то он зайдет на главную и увидит результаты
поиска с вашей сессии, поетому без модификации урл тут необойтись

  Ответить  
 
 автор: Николай2357   (22.01.2009 в 23:42)   письмо автору
 
   для: nikita2206   (22.01.2009 в 23:39)
 

Я писал в прошлой теме, но по всей видимости тут не поиск как таковой, а просто выбор. По этому ничего страшного не должно произойти.

  Ответить  
 
 автор: vorobey   (22.01.2009 в 23:54)   письмо автору
 
   для: Николай2357   (22.01.2009 в 23:42)
 

в принципе не поиск а просто выбор и з одной колонки таблицы 15 вариантов всего.(в каждой ячейке одно единственное слово и если слово совпадает тогда вытягивается все записи из соседних колонок)
Пробелы убрал -выдает теже ошибки.

  Ответить  
 
 автор: Николай2357   (22.01.2009 в 23:57)   письмо автору
 
   для: vorobey   (22.01.2009 в 23:54)
 

Два варианта - пробел или вывод выше старта сессии. Ищите.

  Ответить  
 
 автор: vorobey   (23.01.2009 в 17:14)   письмо автору
5.5 Кб
 
   для: Николай2357   (22.01.2009 в 23:57)
 

вот полный код.(взят из соседней страницы-полностью аналогичен тому что выше давал только названия баз другие) с сессией результат непоменялся(ошибки не выдает).Находится и выводится результат,а навигация при нажатии всеравно непашет
<?
session_start
();
$search = isset($_POST['search'])?$_POST['search']:null;
$_SESSION['search'] = (get_magic_quotes_gpc())? mysql_escape_string(stripslashes($search)):mysql_escape_string($search);
$_SESSION['search'] = ($search)?$search:$_SESSION['search'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>поиск</title>
<link href="stile.css" rel="stylesheet" type="text/css">
</head>
<body>
<table class="main_border">
<?php include ("blocks/header.php");include ("blocks/bd.php");
?>
  <tr>
    <td><table width="1024" border="0">
     <tr>
<?php include ("blocks/lefttd.php");?>    
        <td  valign="top"><p>ВАШ поиск!</p>
<?php

$num 
=2;
$page $_GET['page'];
$result_count mysql_query("SELECT COUNT(*)  FROM avtobase WHERE title='".$_SESSION['search']."' ",$db );
$temp mysql_fetch_array($result_count);
$posts $temp[0];
print(
"найдено $posts сообщений");
$total = (($posts 1) / $num) + 1;
$total =  intval($total);
$page intval($page);
if(empty(
$page) or $page 0$page 1;
  if(
$page $total$page $total;
$start $page $num $num;

$result=mysql_query("select id,title,date,description,price from avtobase WHERE title='".$_SESSION['search']."' order by id desc LIMIT $start,$num",$db);
if(!
$result)
 {
echo
"<p>даных ненайдено</p>";
exit;
 }
while (
$myrow=mysql_fetch_array ($result)) 
  { 
  
printf ("<table  valign='left' class='index'>
              <tr><td class='index_auto'>
                 <p class='leftstr'><a href='viev.php?id=%s'>%s</a></p>
                 <p class='rightstr'>№обьявления : %s добавлено: %s</p>
                 <div style='clear: left'></div>
             <b><em>описание:</em></b>        %s<br>
            <i>цена:</i></b><b class='price'>%s</b>
                 </td></tr></table></br>"
,$myrow['id'],$myrow['title'],$myrow['id'],$myrow['date'],$myrow['description'],$myrow['price']);    
  }
if(
$page!= 1)$pervpage='<a href=serch_avto.php?avto='.$avto.'&page=1>Первая</a><a href=serch_avto.php?avto='.$avto.'&page='.($page-1).'>zzz</a>';
if (
$page != $total$nextpage '  <a href=serch_avto.php?avto='.$avto.'&page='. ($page 1) .'>zzz</a>  <a href=serch_avto.php?avto='.$avto.'&page=' .$total'>Последняя</a>';
if(
$page 0$page5left ' <a href=serch_avto.php?avto='.$avto.'&page='. ($page 5) .'>'. ($page 5) .'</a> | ';
if(
$page 0$page4left ' <a href=serch_avto.php?avto='.$avto.'&page='. ($page 4) .'>'. ($page 4) .'</a> | ';
if(
$page 0$page3left ' <a href=serch_avto.php?avto='.$avto.'&page='. ($page 3) .'>'. ($page 3) .'</a> | ';
if(
$page 0$page2left ' <a href=serch_avto.php?avto='.$avto.'&page='. ($page 2) .'>'. ($page 2) .'</a> | ';
if(
$page 0$page1left ' <a href=serch_avto.php?avto='.$avto.'&page='. ($page 1) .'>'. ($page 1) .'</a> | ';

if(
$page <= $total$page5right ' | <a href=serch_avto.php?avto='.$avto.'&page='. ($page 5) .'>'. ($page 5) .'</a>';
if(
$page <= $total$page4right ' | <a href=serch_avto.php?avto='.$avto.'&page='. ($page 4) .'>'. ($page 4) .'</a>';
if(
$page <= $total$page3right ' | <a href=serch_avto.php?avto='.$avto.'&page='. ($page 3) .'>'. ($page 3) .'</a>';
if(
$page <= $total$page2right ' | <a href=serch_avto.php?avto='.$avto.'&page='. ($page 2) .'>'. ($page 2) .'</a>';
if(
$page <= $total$page1right ' | <a href=serch_avto.php?avto='.$avto.'&page='. ($page 1) .'>'. ($page 1) .'</a>';

if (
$total 1){
Error_Reporting(E_ALL & ~E_NOTICE);
echo 
"<div class=\"pstrnav\">";
echo 
$pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo 
"</div>";} 
?>
          </td>
          <td  valign="top"   width="160"  ><h2>новая таблица</h2></td>
      </tr>
    </table></td>
  </tr>
  <?php include("blocks/futer.php");?>
</table>
</body>
</html>

  Ответить  
 
 автор: Николай2357   (23.01.2009 в 19:09)   письмо автору
 
   для: vorobey   (23.01.2009 в 17:14)
 

Неужели Вы совсем не анализируете то, что пишите? Вы зря ждете готовых решений, здесь в основном показывают направление, в котором двигаться. Ведь всего то я допустим не знаю, да и ошибиться могу очень просто. Вот как сейчас к примеру.
<?
$search 
= isset($_POST['search'])?$_POST['search']:null;
if(
$search)
$_SESSION['search'] = (get_magic_quotes_gpc())? mysql_escape_string(stripslashes($search)):mysql_escape_string($search);

  Ответить  
 
 автор: vorobey   (23.01.2009 в 21:47)   письмо автору
 
   для: Николай2357   (23.01.2009 в 19:09)
 

анализирую.Готовых нежду иначе взялбы готовое. Я просто боюсь что направление в котором двигаюсь может быть неправильным

  Ответить  
 
 автор: vorobey   (25.01.2009 в 12:08)   письмо автору
 
   для: Николай2357   (23.01.2009 в 19:09)
 

session_start();
    if (isset($_POST['search'  ]))$search=$_POST['search'];
if (isset ($search))$_SESSION['search'] =$search;

добавил только эти две строки и все заработало.
вот непонял для чего мне рекомдовали поставить :
:null;     и вот 
(get_magic_quotes_gpc())? mysql_escape_string(stripslashes($search)):mysql_escape_string($search); 

я понимаю что stripslashes -вроде для безопасности, а остальные строки
И еще. обязательно закрывать сессию и вообще зачем это нужно?
-вроде итак работает.

  Ответить  
 
 автор: Николай2357   (25.01.2009 в 12:47)   письмо автору
 
   для: vorobey   (25.01.2009 в 12:08)
 

:null; - для определения переменной
Для безопасности mysql_escape_string(), а всё остальное - для борьбы с директивойget_magic_quotes_gpc(), которая может быть (и часто бывает) включенной по умолчанию. Если этого не сделать, появляется вероятность некорректной обработки данных (двойное экранирование). Так что зря Вы этим пренебрегаете.

  Ответить  
 
 автор: nikita2206   (23.01.2009 в 00:00)   письмо автору
 
   для: vorobey   (22.01.2009 в 23:54)
 

просто дай исходник, самую его первую часть

  Ответить  
 
 автор: nikita2206   (22.01.2009 в 23:57)   письмо автору
 
   для: Николай2357   (22.01.2009 в 23:42)
 

вообще, зачем делать пост запрос для поиска?? можете посмотреть на дле(DataLife Engine) там поиск осуществляется
с пост запросом, помоему очень неудобно, зайдите теперь на яндекс, гугле везде именно гет запрсы. если вам
ненравится красота урлов то почитайте про mod_rewrite

  Ответить  
 
 автор: Николай2357   (23.01.2009 в 00:00)   письмо автору
 
   для: nikita2206   (22.01.2009 в 23:57)
 

При гет запросе появятся проблемы с кирилицей, оно надо? И реврайт тут как мертвому пятая нога.

  Ответить  
 
 автор: nikita2206   (23.01.2009 в 00:01)   письмо автору
 
   для: Николай2357   (23.01.2009 в 00:00)
 

с кирилицей вроде urldecode() вполне помогает

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования