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

Форум MySQL

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

 

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

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

тема: Опять постраничный вывод :0(
 
 автор: MIchail1982   (30.11.2006 в 04:39)   письмо автору
 
 

Полистал форум, но так и не понял, как прикрутить постраничный вывод к своему скрипту

<?php
    
// Создаём запрос
$num=0;
if (
$num==and $C1=='ON') {$num=1$q1="T like '$S1'";};
if (
$num==and $C2=='ON') {$num=1$q2="U like '$S2'";}
elseif (
$C2=='ON')$q2=" and U like '$S2'";
else {
$q2='';};
if (
$num==and $C3=='ON') {$num=1$q3="V like '$S3'";}
elseif (
$C3=='ON')$q3=" and V like '$S3'";
else {
$q3='';};
if (
$num==and $C4=='ON') {$num=1$q4="W like '$S4'";}
elseif (
$C4=='ON')$q4=" and W like '$S4'";
else {
$q4='';};
$quer $q1.$q2.$q3.$q4;
if (
$quer == null)
{echo 
"<p align='Center'><font size=5>Вы ничего не ввели</font></p>\n";}
else {
    
//Данные для mysql сервера
$dbhost "localhost"// Хост
$dbuser "root"// Имя пользователя
$dbpassword ""// Пароль
$dbname "svs"// Имя базы данных
$dbtable "db"// Имя таблицы
    //Заголовок HTML
echo "<html><head><meta HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=windows-1251'></head><body><p align='Center'>";
    
// Подключаемся к mysql серверу
$link mysql_connect($dbhost$dbuser$dbpassword);
    
// Выбираем нашу базу данных
mysql_select_db($dbname$link);
    
//Делаем sql запрос
$query "select * from $dbtable where $quer Order by S;";
    
//Ставим кодировку, в которой хранятся данные в MySQL
mysql_query("SET CHARSET cp1251");
    
// Запрашиваем
$result mysql_query($query$link);
     
//Проверяем, есть ли результаты
if (mysql_num_rows($result) == 0)
{echo 
"<font size=5>Поиск не дал результатов</font>\n";}
else {
    
//Создаём массив с названиями районов
$ragon[] = 'Балаклійський';
$ragon[] = 'Барвінківський';
$ragon[] = 'Блізнюківський';
$ragon[] = 'Богодухівський';
$ragon[] = 'Борівський';
$ragon[] = 'Валківський';
$ragon[] = 'Великобурлуцький';
$ragon[] = 'Вовчанський';
$ragon[] = 'Зміївський';
$ragon[] = 'Двуречанський';
$ragon[] = 'Дергачівський';
$ragon[] = 'Зачепілівський';
$ragon[] = 'Золочівський';
$ragon[] = 'Ізюмський';
$ragon[] = 'Кегічівський';
$ragon[] = 'Красноградський';
$ragon[] = 'Краснокутський';
$ragon[] = 'Куп"янський';
$ragon[] = 'Лозівський';
$ragon[] = 'Нововодолазький';
$ragon[] = 'Первомайський';
$ragon[] = 'Сахновщінський';
$ragon[] = 'Чугуївський';
$ragon[] = 'Харківський';
$ragon[] = 'Шевченківський';
$ragon[] = 'Дзержинський';
$ragon[] = 'Київський';
$ragon[] = 'Комінтерновський';
$ragon[] = 'Ленінський';
$ragon[] = 'Московський';
$ragon[] = 'Жовтневий';
$ragon[] = 'Орджонікідзевський';
$ragon[] = 'Червонозаводський';
$ragon[] = 'Фрунзенський';
$ragon[] = 'Печенізький';
$ragon[] = 'Коломацький';
echo 
"<font size=5>Результаты поиска</font>\n";
    
//Рисуем таблицу
echo "<table border=1>\n";
echo 
"<tr><td>Код</td><td>Фамилия</td><td>Имя</td><td>Отчество</td><td>DA</td><td>DB</td><td>Район</td><td>Посмотреть</td></tr>\n";
while(
$rows mysql_fetch_array($result))
{
$qwe=$rows ["UID"];
$url="View.php?id=$qwe";
echo 
"<tr><td>"$rows ["T"], "</td>\n";
echo 
"<td>"$rows ["U"], "</td>\n";
echo 
"<td>"$rows ["V"], "</td>\n";
echo 
"<td>"$rows ["W"], "</td>\n";
echo 
"<td>"$rows ["S"], "</td>\n";
echo 
"<td>"$rows ["BA"], "</td>\n";
echo 
"<td>"$ragon[$rows ["P"]-1], "</td>\n";
echo 
"<td>""<a href=$url>Анкета</a>""</td></tr>\n";}
echo 
"</table>\n";}
    
// Закрываем соединение
mysql_close($link);}
echo 
"</p></body></html>";
?>


Помогите плз

   
 
 автор: Mirage   (30.11.2006 в 11:56)   письмо автору
 
   для: MIchail1982   (30.11.2006 в 04:39)
 

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

   
 
 автор: MIchail1982   (30.11.2006 в 18:34)   письмо автору
 
   для: Mirage   (30.11.2006 в 11:56)
 

задача разбить информацию (таблицу) по 20-25 записей (непринципиально) если их больше для ускорения загрузки страницы вывод по алфавиту уже сделан в запросе (Order by S)
дамп прилагается

по каким критериям разделять (нумерация,буквенно...) ну не знаю
типа 1 2 <font size=3> 3 </font> 4 5 или << < 3 > >> как легче

   
 
 автор: Mirage   (01.12.2006 в 12:52)   письмо автору
 
   для: MIchail1982   (30.11.2006 в 18:34)
 

я тебе напишу скрипт котороый нумерует страницы как на сайте
http://vbc.renet.ru/Selection_analogue.php

//функция для определения разбивки и нумерции(позиции) записей 
function position(){
  //sql-запрос 
  $select_da="SELECT  *
                          FROM da ";
  $resultat_select_da = mysql_query($select_da) or die(mysql_error());
  //кол записей возращяемым запросом 
  $count_rows_da = mysql_num_rows($resultat_select_da);

  //дополнительная переменная
  $count=$count_rows_da;
  //количество нумераций 
  $count=$count/25;
  //округляем
  $count = ceil($count)-1;

  //если пользователь переходит по страницам вручную и пишет в адреснной
  //строке на какую страницу перейти для этого мы дополнительно проверяем 
  //если текушая позиция больше количеств позиции 
  if ($_SESSION['p']>$count)
  {
     $_SESSION['p']=$count; // то текущая позиция равна конечной
  }
  $m=$_SESSION['p'] % 10; //  $m - текущиq позиция вернее правильно сказать индекс от 0-10 т.е если 
                           //пользователь нажал на 45 страницу то  берем 10-ую часть т.е $m=45%10=5
   //html код для показа нумераций
  echo "
       <center>
            <table border='1' style='font-size:14px'>
                <tr>";
                     //если пользователь находиться не в первой десятки то даем ему 
                     //возможность перейти назад в другую десятку
                    if (($_SESSION['p']-$m)>=10)
                   {
                     echo "
                          <td style='border-style:outset;background-color:#0099CC'>
                                <font color=\"#ffffff\">
                                <i>
                                <b
                                   <a style=\"color:#ffffff;\" href=\"......php?position=".($_SESSION['p']-$m-1)."\">
                                          ".($_SESSION['p']-$m-10)."  . .  ".($_SESSION['p']-$m-1)."
                                   </a>
                                 </b>
                                 </i>
                                 </font>
                              </td>";
                         }
                         //цикл для вывода текущих 10 позиций
                         for ($n=$_SESSION['p']-$m; $n<=$_SESSION['p']-$m+9; $n=$n+1)
                         {
                            if ($n>$count)
                            {
                               break;
                             }
                          //если мы добрались до позиции который выбрал пользователь то 
                         // выводим ее без сылки
                         if ($_SESSION['p']==$n)
                         {
                          echo "
                            <td style='border-style:outset;background-color:#CC6600'>
                                <font color=\"#ffffff\">
                                <i>
                                <b>";
                           echo $n;
                           echo "
                                  </b>
                                   </i>
                                   </font>
                               </td>";
                              }
                              else // иначе выводим остальные позиции с сылками
                              {
                                  echo"
                                     <td  style='border-style:outset;background-color:#0099CC'>
                                         <font color=\"#ffffff\">
                                         <i>
                                         <b>
                                          <a class=\"pos\"  href=\"..........php?position=".$n."\">
                                                  ".$n."
                                          </a>";
                                           echo "
                                            </b>
                                            </i>
                                            </font>
                                          </td>";
                                  }
                                }//конец цикла
                                 //если мы находимся не в последней десятки то позволяем
                                 //пользователью перейти в следуюшею десятку
                                 if ($n<$count)
                                 {
                                     echo "
                                         <td  style='border-style:outset;background-color:#0099CC'>
                                             <font color=\"#ffffff\">
                                             <i>
                                             <b>
                                             <a style=\"color:#ffffff;\" href=\"........php?position=".$n."\">
                                                          ".($n)."  . .  ".($n+9)."
                                              </a>
                                              </b>
                                               </i>
                                               </font>
                                            </td>";
                                       }
                                          echo "
                                              <td style='border-style:outset;'>
                                                   <font style='color:black'>
                                                    <b>
                                                        Количество записей
                                                            <font style='color:#CC6600'>
                                                                  ".$count_rows_da."
                                                             </font>
                                                     </b>
                                                     </font>
                                                  </td>
                          </tr>
                 </table>
            </center>
          <br>";
 }//конец функции

function printrow($row)//функция для вывода строк в таблице
{
 echo "
  <tr>
      <td>
           ".$row['A']."
      </td>
      <td>
           ".$row['B']."
      </td>
    ..... и так далее сам напишешь что тебе надо выводить
  </tr>";
}


//теперь сама главная функция
function main()
{
      // я хранил положение позиции в сессии так удобно елси пользователь переходит по
      // разделам и возврашяестя то он сразу попадает на ту позицию котоую он выберал 

      //здесь я думаю нечего объеснять не надо
      if (!session_is_registered('p'))
      {
            session_register('p');
      }
      if (isset($_GET['position']))
      {
           if (preg_match("|^[0-9]+$|",$_GET['position']))
          {
              $_SESSION['p']=$_GET['position'];
           }
           else
          {
              $_SESSION['p']=0;
          }
      }
     else
    {
       if (!isset($_SESSION['p']))
       {
            $_SESSION['p']=0;
       }
    }
 position(); 
 echo "
    <table>
      <tr> // здесь ты строиш шапку если она тебе нужна
         <td>
        </td>
      </tr>";

      //sql-запрос 
     $select_da="SELECT  *
                             FROM da
                             LIMIT ".($_SESSION['p']*25)." , 25 ";
     $resultat_select_da = mysql_query($select_da) or die(mysql_error());

     while ($row=mysql_fetch_array($resultat_select_da))
    {
           printrow($row);
     }
   </table>
   position(); 

}


P.S. на деюсь все понятно изложил а то уменя с каментариями плохо дела обстоят
P.SS. если тебе надовыборку делать с условием как утебя в скрипте то добавь просто во всех sql запросах это условие ничего неизмениться только он будет нумеровать количесто записей вернувших с данным условиям

   
 
 автор: MIchail1982   (03.12.2006 в 10:32)   письмо автору
 
   для: Mirage   (01.12.2006 в 12:52)
 

//здесь я думаю нечего объеснять не надо
if (!session_is_registered('p'))
{
session_register('p');
}
if (isset($_GET['position']))


:0) какраз этого я и не понял, откуда $_GET['position' значения берёт?

   
 
 автор: Mirage   (04.12.2006 в 09:25)   письмо автору
 
   для: MIchail1982   (03.12.2006 в 10:32)
 

// если унас сессия с именем p не сушествует
if (!session_is_registered('p'))
{
// то регистрируем ее
session_register('p');
}
а значение $_GET['position'] это значение которое выбрал ползователь, указывает с кокой записи начинать показывать 25 записей
т.е если у нас 1000 записей в таблице,
и мы разабьем эти 1000 записей по 25 то получим 40 позиций
и унас строка навигации будет первоначально будет выглядить следующим образом
0 1 2 3 4 5 6 7 8 9 10-19
где 0123456789 - позиции которые передаються методом GET
если же пользователь нажмет на на сылку с номером 7 то скрипт покажет 25 - записей с 7*25=175 позиции

если же на сылку 10-19 то скрипт покажет 25 записей с 10*25=250 позиции и строка навигации измениться следующим образом
0-9 10 11 12 13 14 15 16 17 18 19 20-29

строка навигации формируется в функции position(); посмотри внимательнее

.....................
<a style=\"color:#ffffff;\" href=\"......php?position=".($_SESSION['p']-$m-1)."\"> 
                ".($_SESSION['p']-$m-10)."  . .  ".($_SESSION['p']-$m-1)." 
</a> 
......................
<a class=\"pos\"  href=\"..........php?position=".$n."\"> 
         ".$n." 
</a>"; 
......................
 <a style=\"color:#ffffff;\" href=\"........php?position=".$n."\"> 
        ".($n)."  . .  ".($n+9)." 
</a> 

   
 
 автор: MIchail1982   (04.12.2006 в 14:53)   письмо автору
 
   для: Mirage   (04.12.2006 в 09:25)
 

Спасибо, попытался прикрутить скрипт из http://www.softtime.ru/info/articlephp.php?id_article=33 почти получилось :0) буду колупать дальше если чё, код выложу

   
 
 автор: Michail1982   (13.12.2006 в 00:43)   письмо автору
 
   для: MIchail1982   (04.12.2006 в 14:53)
 

Вот сделал не так как хотелось, но работает на ура

<?php
    
//проверка данных
$S1 preg_replace("|[^"."0123456789%_ ]|"""$S1);
$S2 preg_replace("|[^"."АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЄЮЯЇІабвгдежзийклмнопрстуфхцчшщьєюяії%_' ]|"""$S2);
$S3 preg_replace("|[^"."АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЄЮЯЇІабвгдежзийклмнопрстуфхцчшщьєюяії%_' ]|"""$S3);
$S4 preg_replace("|[^"."АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЄЮЯЇІабвгдежзийклмнопрстуфхцчшщьєюяії%_' ]|"""$S4);
    
// Создаём запрос
$num=0;
if (
$num==and $C1=='ON') {$num=1$q1="T like '$S1'";} else {$q1='';};
if (
$num==and $C2=='ON') {$num=1$q2="U like '$S2'";} elseif ($C2=='ON')$q2=" and U like '$S2'"; else {$q2='';};
if (
$num==and $C3=='ON') {$num=1$q3="V like '$S3'";} elseif ($C3=='ON')$q3=" and V like '$S3'"; else {$q3='';};
if (
$num==and $C4=='ON') {$num=1$q4="W like '$S4'";} elseif ($C4=='ON')$q4=" and W like '$S4'"; else {$q4='';};
$quer $q1.$q2.$q3.$q4;
if (
$quer == null)
{echo 
"<p align='Center'><font size=5>Вы ничего не ввели</font></p>\n";}
else {
    
//Данные для mysql сервера
include "config.php";
$size "SELECT * FROM $dbtable where $quer;";
    
//Считаем количество строк
$res mysql_query($size$link);
$all mysql_num_rows($res);
    
//Данные
$shag 25;
$start = ($page*$shag)-($shag-1);
    
//Делаем sql запрос
$query "SELECT * FROM $dbtable where $quer Order by U, S LIMIT $start$shag;";
    
//Ставим кодировку, в которой хранятся данные в MySQL
mysql_query("SET CHARSET cp1251");
    
// Запрашиваем
$result mysql_query($query$link);
    
//Проверяем, есть ли результаты
if (mysql_num_rows($result) == 0)
{echo 
"<font size=5>Поиск не дал результатов</font>\n";}
else {
    
//Создаём массив с названиями районов
$ragon[] = 'Балаклійський';
$ragon[] = 'Барвінківський';
$ragon[] = 'Блізнюківський';
$ragon[] = 'Богодухівський';
$ragon[] = 'Борівський';
$ragon[] = 'Валківський';
$ragon[] = 'Великобурлуцький';
$ragon[] = 'Вовчанський';
$ragon[] = 'Зміївський';
$ragon[] = 'Двуречанський';
$ragon[] = 'Дергачівський';
$ragon[] = 'Зачепілівський';
$ragon[] = 'Золочівський';
$ragon[] = 'Ізюмський';
$ragon[] = 'Кегічівський';
$ragon[] = 'Красноградський';
$ragon[] = 'Краснокутський';
$ragon[] = 'Куп"янський';
$ragon[] = 'Лозівський';
$ragon[] = 'Нововодолазький';
$ragon[] = 'Первомайський';
$ragon[] = 'Сахновщінський';
$ragon[] = 'Чугуївський';
$ragon[] = 'Харківський';
$ragon[] = 'Шевченківський';
$ragon[] = 'Дзержинський';
$ragon[] = 'Київський';
$ragon[] = 'Комінтерновський';
$ragon[] = 'Ленінський';
$ragon[] = 'Московський';
$ragon[] = 'Жовтневий';
$ragon[] = 'Орджонікідзевський';
$ragon[] = 'Червонозаводський';
$ragon[] = 'Фрунзенський';
$ragon[] = 'Печенізький';
$ragon[] = 'Коломацький';
echo 
"<font size=5>Результаты поиска</font>\n";
    
//Рисуем таблицу
echo "<table border=1>\n";
echo 
"<tr><td>Код</td><td>Фамилия</td><td>Имя</td><td>Отчество</td><td>DA</td><td>DB</td><td>Район</td><td>Посмотреть</td></tr>\n";
while(
$rows mysql_fetch_array($result))
{
$qwe=$rows ["UID"];
$url="View.php?id=$qwe";
echo 
"<tr><td>"$rows ["T"], "</td>\n";
echo 
"<td>"$rows ["U"], "</td>\n";
echo 
"<td>"$rows ["V"], "</td>\n";
echo 
"<td>"$rows ["W"], "</td>\n";
echo 
"<td>"$rows ["S"], "</td>\n";
echo 
"<td>"$rows ["BA"], "</td>\n";
echo 
"<td>"$ragon[$rows ["P"]-1], "</td>\n";
echo 
"<td>""<a href=$url>Анкета</a>""</td></tr>\n";}
echo 
"</table>\n";
    
//Рисуем навигацию
$nawP $page 1;
$nawM $page 1;
$maxnaw intval(($all/25)+1);
echo 
"Страница "$page" из "$maxnaw;
echo 
"<form action='List.php' method='post'>
<input type='hidden' name='S1' value=
$S1>
<input type='hidden' name='S2' value=
$S2>
<input type='hidden' name='S3' value=
$S3>
<input type='hidden' name='S4' value=
$S4>
<input type='hidden' name='C1' value=
$C1>
<input type='hidden' name='C2' value=
$C2>
<input type='hidden' name='C3' value=
$C3>
<input type='hidden' name='C4' value=
$C4>
<select size='1' name='page'>"
;
for(
$n=1$n <= $maxnaw$n++)
echo 
"<option>".$n."</option>";
echo 
"<input type='submit' name='submit' value='Перейти'></p></form>";};
    
// Закрываем соединение
mysql_close($link);}
?>

   
Rambler's Top100
вверх

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