|
|
|
| Полистал форум, но так и не понял, как прикрутить постраничный вывод к своему скрипту
<?php
// Создаём запрос
$num=0;
if ($num==0 and $C1=='ON') {$num=1; $q1="T like '$S1'";};
if ($num==0 and $C2=='ON') {$num=1; $q2="U like '$S2'";}
elseif ($C2=='ON')$q2=" and U like '$S2'";
else {$q2='';};
if ($num==0 and $C3=='ON') {$num=1; $q3="V like '$S3'";}
elseif ($C3=='ON')$q3=" and V like '$S3'";
else {$q3='';};
if ($num==0 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>";
?>
|
Помогите плз | |
|
|
|
|
|
|
|
для: MIchail1982
(30.11.2006 в 04:39)
| | а можно по падробнее какя у тубя задача стоит
т.е какую тебе информацию надо разделить на постраничный вывод
по каким критериям разделять (нумерация,буквенно...)
где она храниться и желательно если в БД то структуру таблицы. | |
|
|
|
|
|
|
|
для: Mirage
(30.11.2006 в 11:56)
| | задача разбить информацию (таблицу) по 20-25 записей (непринципиально) если их больше для ускорения загрузки страницы вывод по алфавиту уже сделан в запросе (Order by S)
дамп прилагается
по каким критериям разделять (нумерация,буквенно...) ну не знаю
типа 1 2 <font size=3> 3 </font> 4 5 или << < 3 > >> как легче | |
|
|
|
|
|
|
|
для: 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 запросах это условие ничего неизмениться только он будет нумеровать количесто записей вернувших с данным условиям | |
|
|
|
|
|
|
|
для: Mirage
(01.12.2006 в 12:52)
| | //здесь я думаю нечего объеснять не надо
if (!session_is_registered('p'))
{
session_register('p');
}
if (isset($_GET['position']))
:0) какраз этого я и не понял, откуда $_GET['position' значения берёт? | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: Mirage
(04.12.2006 в 09:25)
| | Спасибо, попытался прикрутить скрипт из http://www.softtime.ru/info/articlephp.php?id_article=33 почти получилось :0) буду колупать дальше если чё, код выложу | |
|
|
|
|
|
|
|
для: 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==0 and $C1=='ON') {$num=1; $q1="T like '$S1'";} else {$q1='';};
if ($num==0 and $C2=='ON') {$num=1; $q2="U like '$S2'";} elseif ($C2=='ON')$q2=" and U like '$S2'"; else {$q2='';};
if ($num==0 and $C3=='ON') {$num=1; $q3="V like '$S3'";} elseif ($C3=='ON')$q3=" and V like '$S3'"; else {$q3='';};
if ($num==0 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);}
?>
|
| |
|
|
|