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

Форум PHP

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

 

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

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

тема: Постраничный вывод из MySQL с выборкой
 
 автор: SlaDER   (28.05.2007 в 08:05)   письмо автору
 
 

Здраствуйте! При написании скрипта возникла проблема со структурой.

У меня есть форма в котороый 2 текстбокса и 2 комбобокса.

Текст бокс:
1- это ФИО
2- это телефон

Комбо бокс:
1- Организация
2- Отдел

После нажатия на кнопку происходит обработка

if(isset($_POST['btnSearch'])){
    $qwer="";
    $logic="";
    $lastname=$_POST['fio'];
    
    if($lastname!=""){
        $qwer="LastName='$lastname' ";
        $logic="And";
    }
    $tele=$_POST['tele'];
    if($tele!=0){
        $qwer.=$logic." InPhone='$tele' or ExtPhone='$tele'";
    }
    
    $org=$_POST['org'];
    if($org!=0){
        $qwer.=$logic."organization='$org'";
    }
    $dep=$_POST['dep'];
        if($dep!=0){
            $qwer.=$logic."subdivision='$org'";

          $total_posts=$sql->db_Select("users","*",$qwer);    
    $qwer.="limit ".(($page-1)*10).",10 ";
    $sql->db_Select("users","*",$qwer);

.....
            
        }


Вывожу номера страниц с помощью функции


print print_links($total_posts,$page,"10","5"); 


function print_links($total,$page,$number,$links){ //1 аргумент - всего сообщений, 2 - номер текущей страницы, 3 - число сообщений на странице, 4 - число отображаемых ссылок
        $return = null;
        $pages = ceil($total/$number); //Вычисляем сколько должно получиться страниц 

        if ($page+$links <= $pages){
            $start = $page;
        }
        else {
            $start = $pages-($links-1);
            $finish = $pages;
        }

        if ($start < 0){
            $start = 1;
        }
    for ($i=$start;$i<=10;$i++){ //Записываем в переменную ссылки
        $return .= " <a href='?page=".$i."'>".$i."</a> ";
        }
return $return; 


Проблема в том что при нажатии на ссылки со стрницами, не происходит передача параметров.

   
 
 автор: coloboc66   (28.05.2007 в 09:34)   письмо автору
 
   для: SlaDER   (28.05.2007 в 08:05)
 

Вот здесь у вас:
$return .= " <a href='?page=".$i."'>".$i."</a> ";
В ссылку записывается только параметр, без указания страницы, которой он передаётся.
Мне так кацца...

   
 
 автор: bronenos   (28.05.2007 в 09:48)   письмо автору
 
   для: coloboc66   (28.05.2007 в 09:34)
 

?page=...
аналогично
$PHP_SELF.php?page=...
если не ошибаюсь

   
 
 автор: coloboc66   (28.05.2007 в 09:55)   письмо автору
 
   для: bronenos   (28.05.2007 в 09:48)
 

Может быть, не буду спорить...

   
 
 автор: Trianon   (28.05.2007 в 10:01)   письмо автору
 
   для: SlaDER   (28.05.2007 в 08:05)
 

переменная $page нигде не определяется.

   
 
 автор: SlaDER   (28.05.2007 в 11:00)   письмо автору
 
   для: Trianon   (28.05.2007 в 10:01)
 

Я наверно не так вопрос поставил.

Проблема в том что, при нажатии на кнопку мы передаём параметры с формы, а когда нажимаем на ссылку то нет. И получается что :

Notice: Undefined index: fio in z:\home\phone.ru\www\index.php on line 28

Notice: Undefined index: tele in z:\home\phone.ru\www\index.php on line 36

Notice: Undefined index: org in z:\home\phone.ru\www\index.php on line 41

Notice: Undefined index: dep in z:\home\phone.ru\www\index.php on line 48

   
 
 автор: Trianon   (28.05.2007 в 11:10)   письмо автору
 
   для: SlaDER   (28.05.2007 в 11:00)
 

Так и передавайте эти параметры вместе с номером страницы через ссылки.

Вообще-то поисковые формы обычно реализуются через GET а не POST.

   
 
 автор: SlaDER   (29.05.2007 в 06:04)   письмо автору
 
   для: Trianon   (28.05.2007 в 11:10)
 

А принимать можно из одного обработчика? Т.е. один обработчик и для формы и для линка.

   
 
 автор: Trianon   (29.05.2007 в 09:53)   письмо автору
 
   для: SlaDER   (29.05.2007 в 06:04)
 

Конечно можно.

Более того - нужно. Чтобы лишних сущностей не плодить.

   
 
 автор: SlaDER   (29.05.2007 в 12:43)   письмо автору
 
   для: Trianon   (29.05.2007 в 09:53)
 

Я написал так:

if(isset($_GET['btnSearch']) or isset($_GET['page'])){
    $lastname=$_GET['fio'];
    $tele=$_GET['tele'];
    $org=$_GET['org'];
    $dep=$_GET['dep'];
    $logic=$_GET['logic'];
    if(isset($_GET['page'])){
        $page=$_GET['page'];
    }
    
    
}


А как будет лучше?

Передача параметра через ссылку:


<A HREF=\"?page=".($i)."&fio=".$lastname."&tele=".$tele."&org=".$org."&dep=".$dep."&logic=".$logic."\"[".($i)."] </A>

   
 
 автор: SlaDER   (29.05.2007 в 13:22)   письмо автору
 
   для: SlaDER   (29.05.2007 в 12:43)
 

И еще такой вопрос. У меня 2 текстбокса и 2 комбобокса + 2 радиокнопки И, ИЛИ
И мне нужно осуществлять поиск по каждому критерию, по всем вместе и по любой паре/тройке.

Я пока написал так

if($lastname != ""){
        $qwer="LastName='$lastname' ";
    }
    if($tele != 0){
        $qwer.=$logic." (InPhone='$tele' or ExtPhone='$tele') ";
    }
    if($org != 0){
        $qwer.=$logic." organization='$org' ";
    }
    if($dep != 0){
            $qwer.=$logic." subdivision='$dep' ";
    }


$logic - это и/или
$qwer - это условие на выборку из таблицы

Перебирать все варинаты, как-то не очень может кто предложит более грамотный алгоритм.

   
 
 автор: SlaDER   (30.05.2007 в 06:31)   письмо автору
 
   для: SlaDER   (29.05.2007 в 13:22)
 

Up помогите плиз!

   
Rambler's Top100
вверх

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