Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Прелистване страница по страница
  1. Прелистване страница по страница
Magenta
     
Автор  Magenta (01.05.2004 20:16)  съобщение до автора
Погледнат  3407 пъти  добави към любими
Оценка  добави коментар
Гласове  6  изпрати на приятел
Коментари  (0)  абонирай се за PHP
    Страница 1 / 1

 



Прелистване страница по страница

Запитване от датенбанката можем да поместин на няколко страници и да ги прелистваме страница по страница

Когато резултатът от запитването към някоя Датенбанка е много голям  трябва да се прехвърля на няколко страници както става при търсачките.Следният код прави нобходимите линкове [първа страница], [една страница назад], [1 2 3 ...], [една страница напред], [последна страница].С променливата $Редове_за_страница се определя колко реда за страница трябва да се показват.

CODE
1
2
3
4
5
6
<?
/
/  Направи връзка с датанбанката
include("connect.php");

  $lines = 20;
?>

Когато скриптът се извика за първи път,трябва за $init_position да се зададе стойност  0 .При всяко следващо завъртане $init_position има вече зададена стойност.С тази стойност се задава на SQL-Server от коя позиция нататък трябва да изкарва дата.

CODE
1
2
3
4
5
6
<?php
if (!isset($init_position))
{
 
$init_position = 0;
}
?>

След като напръвите запитването можете с "limit $init_position , $lines " да определите ,от кой ред да ви изкара информация ,и колко информация да бъде изкарана.Важен в този случай е редът "$number=mysql_num_rows($result1)".Така определяте ,колко изречения изпълняват условието.Оттук се определя по-късно на колко страници да се разпредели информацията.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$sql="select * from YOUR_TABLE where ".
    
"YOUR_ORDER limit $init_position,$lines";
$result=mysql_query($sql);
$result1=mysql_query("select YOUR_FIELD from YOUR_TABLE where YOUR_ORDER");

$NUMBER=mysql_num_rows($result1);
while ($row=mysql_fetch_array($result)) {
   
$field1=$row["YOUR_FIELD1"];
   
$field2=$row["YOUR_FIELD2"];
  
// Data output.
   
echo "Field1: ".$field1.", Field2: ".$field2."";
}
?>


Вече имаме желания result за една страница на екрана.Сега трябва да изкараме линковете към другите.
Само когато $init_position е по-голямо от 0 ,сте се поже линкът към [първа страница],[страница назад].Ако $init_position е равна на 0 ,значи първата страница вече е показана и двата линка нямат смисъл.

За да определиме линка [страница назад] ,трябва да се определи началната позиция на предната страница.Това може да доведе до стойност по-малка от 0 ,което ще бъде грешка ,затова тази грешка трябва по някакъв начн да се отстрани

Стойност за $back < 0 може да има,ако кликнете на [последната страница] и ако се връщате назад страница по страница.При [последната Страница] не излиза остатъка на информацията ,а една пълна страница с последните 20 inputs.

CODE
1
2
3
4
5
6
7
8
9
10
<?php
if($init_position > 0) {
 
echo "<a href='THIS_FILE.php?init_position=0'>[first page]</a> ";
 
$back=$init_position-$lines;
 
if($back < 0) {
   
$back = 0;
 
}
 
echo "<a href="THIS_FILE.php?init_position=$back">[first page ück]</a> ";
}
?>


Сега остава да направим линковете "1 2 3 4 ..." , за да може извикваме желаната от нас страница.Затова първо трябва да се сметне,колко страници са ни необходими,за да може да изкараме ресултатът ,който е запитан.Във всички случаи е много вероятно,да не излезе точно число страници .Това сте означава че сте трябва да се вкара допълнително място на допълнителна страница.

С условието ($number% $lines) се определя , дали имаме остатък.Ако имаме остатък ,сте трябва да увеличим броя на страниците с една.

CODE
1
2
3
4
5
6
7
8
<?php
if($number>$lines) {
 
$Pages=intval($number/$lines);
 
if($number%$lines) {
   
$Pages++;
 
}
}

?>

Ние знаеме колко страници сте имаме и можем да направим съответните линкове .Променливата $fwd има за стойност стойноста на

$init_position  за съответния link.


CODE
1
2
3
4
5
6
<?php
for ($i=1;$i<=$Pages;$i++) {
 
$fwd=($i-1)*$lines;
 
echo "<a href="THIS_FILE.php?init_position=$fwd">$i</a> ";
}
?>



   


Ключови думи: php програмиране прелистване странициране


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008