Ограничения - на нова..

Pussycat

Registered
Здравейте,

Ползвам този код:

<?

$user="-"; //DB user
$pass="-"; //DB pass
$db="-"; //DB name
$broi_temi="10";// Колко последни теми да показва
$broi_bukvi="10";//До колко букви от заглавието на темата да показва
mysql_connect(localhost,$user,$pass);
mysql_select_db($db) or die( "Unable to select database");
$query="SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time ";
$result=mysql_query($query);
$num=mysql_num_rows($result);
mysql_close();

$ii=$num-$broi_temi;
for ($i=$num-1; $i>$ii;$i--)
{
@$tema=mysql_result($result,$i,"topic_title");
@$id=mysql_result($result,$i,"forum_id");
@$topic_broi=mysql_result($result,$i,"topic_replies");
@$topic_vidqna=mysql_result($result,$i,"topic_views");
@$topic_id=mysql_result($result,$i,"topic_id");
@$topic=mysql_result($result,$i,"topic_type");
@$user=mysql_result($result,$i,"u.username");

if($topic=="1")
{$vazna='Важна:';}
elseif($topic=="2")
{$vazna='Съобщение:';}
elseif($topic_status=="1")
{$vazna='Заключена:';}
else
{$vazna='';}

if (strlen($tema)>$broi_bukvi)
{$totchki='...';}
else
{$totchki='';}

if($topic_id==NULL)
{
continue;
}
else
{

$tema=substr($tema,0 , $broi_bukvi);
echo" tuka vadim rezultatite ";
}
}
?>


Как мога да огранича до 20линнка да ми изкарва и след 20-тия да вади нова страница ?

Тоест имам зададени такива стойности:
$broi_temi="100";

Обаче понеже стават много линковете искам да се разделят на страници, тоест като се покажат 20 линка, да излиза отдолу Следваща страница, цъкаш там и излизат още 20 линка (на новата страница) и така така докато не станат 100.

Благодаря. :?:

Искам да кажа че прочетох темата и 2та урока за страницирането, ама пак несхващам нищо.. пък и моя случай е малко по особен :?
 
Код:
<?

$user="username"; //DB user
$pass="password"; //DB pass
$db="dbname"; //DB name
$pp = "10"; // Колко последни теми да показва
$broi_bukvi="10";//До колко букви от заглавието на темата да показва

$page=$_GET['page'];

if(!$_GET['page'])
{
$page="1";
}

$limit = ($pp*$page)-$pp;

mysql_connect(localhost,$user,$pass);
mysql_select_db($db) or die( "Unable to select database");
$redove=mysql_query("SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time ");
$max=mysql_numrows($redove);
$total=ceil($max/$pp);
$query="SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time LIMIT $limit,$pp";
$result=mysql_query($query);
$num=mysql_num_rows($result);
mysql_close();

$i=0; 
while ($i < $num) 
{
@$tema=mysql_result($result,$i,"topic_title");
@$id=mysql_result($result,$i,"forum_id");
@$topic_broi=mysql_result($result,$i,"topic_replies");
@$topic_vidqna=mysql_result($result,$i,"topic_views");
@$topic_id=mysql_result($result,$i,"topic_id");
@$topic=mysql_result($result,$i,"topic_type");
@$user=mysql_result($result,$i,"u.username");

if($topic=="1")
{$vazna='Важна:';}
elseif($topic=="2")
{$vazna='Съобщение:';}
elseif($topic_status=="1")
{$vazna='Заключена:';}
else
{$vazna='';}

if (strlen($tema)>$broi_bukvi)
{$totchki='...';}
else
{$totchki='';}

if($topic_id==NULL)
{
continue;
}
else
{

$tema=substr($tema,0 , $broi_bukvi);
echo" tuka vadim rezultatite ";
}
}

if ($page > 1) { 
   $prev = ($page - 1); 
   echo "<a href=\"?page=$prev\"><font face=\"Trebuchet MS\">Предишна страница</font></a> "; 
} 
else echo "<font face=\"Trebuchet MS\">Предишна страница</font> "; 

if (!$page or ($page > $total)) { 
   $page="1"; 
} 

if ($total < 6) { 
   for($i=1 ; $i<=$total ; $i++) { 
      if ( ($page)==$i ) { 
         echo "<b>$i</b> "; 
      } 
      else { 
         echo "<a href=\"?page=".$i."\">".$i."</a> "; 
      } 
   } 
} 
else { 
   for($i=1 ; $i<=3 ; $i++) { 
      if ( ($page)==$i ) { 
         echo "<b>$i</b> "; 
      } 
      else { 
         echo "<a href=\"?page=".$i."\">".$i."</a> "; 
      } 
   } 
    
   if ($page <= 3) { 
      if ($page == 3) echo "<a href=\"?page=4\">4</a> "; 
      echo "... "; 
      for ($i=$total-2; $i<=$total; $i++) 
         echo "<a href=\"?page=".$i."\">".$i."</a> "; 
   } 
    
   if ( ($page == 4) or ($page == 5) ) { 
      for ($i=$page; $i<=$page+1; $i++) { 
         if ($page == $i) echo "<b>$i</b> "; 
         else echo "<a href=\"?page=".$i."\">".$i."</a> "; 
      } 
      echo "... "; 
      for ($i=$total-2; $i<=$total; $i++) 
         echo "<a href=\"?page=".$i."\">".$i."</a> "; 
   } 
    
   if ( ($page > 5) and ($page < ($total - 4)) ) { 
      echo "... "; 
      for ($i=$page-1; $i<=$page+1; $i++) { 
         if ($page == $i) echo "<b>$i</b> "; 
         else echo "<a href=\"?page=".$i."\">".$i."</a> "; 
      } 
      echo "... "; 
      for ($i=$total-2; $i<=$total; $i++) 
         echo "<a href=\"?page=".$i."\">".$i."</a> "; 
   } 
    
   if ( $page > ($total - 5) ) { 
      echo "... "; 
      for ($i=$total-5; $i<=$total; $i++) { 
         if ($page == $i) echo "<b>$i</b> "; 
         else echo "<a href=\"?page=".$i."\">".$i."</a> "; 
      } 
   } 
} 

if ($page < $total) { 
   $next = ($page + 1); 
   echo "<a href=\"?page=$next\"><font face=\"Trebuchet MS\">Следваща страница</font></a> "; 
} 
else echo "<font face=\"Trebuchet MS\">Следваща страница</font>";
?>
 
така?

Код:
<?php 
//server connfigure 
$server = "localhost"; 
$dbusername = "ime"; 
$dbpassword = "parola"; 
$db_name = "db"; 
//server connfigure 
//file connfigure
$pp="10";// Колко последни теми да показва 
$broi_bukvi="10";//До колко букви от заглавието на темата да 
//file connfigure
$page=$_GET['page']; 

if(!$_GET['page']) 
{ 
$page="1"; 
} 

$limit = ($pp*$page)-$pp; 


mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни1"); 
@mysql_select_db($db_name) or die("Грешна база данни1"); 
$redove=mysql_query("SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time "); 
$max=mysql_numrows($redove); 
$total=ceil($max/$pp); 

mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни2"); 
@mysql_select_db($db_name) or die("Грешна база данни2"); 
$query="SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time LIMIT $limit,$pp"; 
$result=mysql_query($query); 

$num=mysql_numrows($result); 

mysql_close(); 

$i=0; 
while ($i < $num) { 

@$tema=mysql_result($result,$i,"topic_title"); 
@$id=mysql_result($result,$i,"forum_id"); 
@$topic_broi=mysql_result($result,$i,"topic_replies"); 
@$topic_vidqna=mysql_result($result,$i,"topic_views"); 
@$topic_id=mysql_result($result,$i,"topic_id"); 
@$topic=mysql_result($result,$i,"topic_type"); 
@$user=mysql_result($result,$i,"u.username"); 

if($topic=="1") 
{$vazna='Важна:';} 
elseif($topic=="2") 
{$vazna='Съобщение:';} 
elseif($topic_status=="1") 
{$vazna='Заключена:';} 
else 
{$vazna='';} 

if (strlen($tema)>$broi_bukvi) 
{$totchki='...';} 
else 
{$totchki='';} 

if($topic_id==NULL) 
{ 
continue; 
} 
else 
{ 

$tema=substr($tema,0 , $broi_bukvi); 
echo" tuka vadim rezultatite ";
} 

$i++; 
} 

//ot tuk zapochva straniciraneto

if ($page > 1) { 
   $prev = ($page - 1); 
   echo "<a href=\"?page=$prev\"><font face=\"Trebuchet MS\">Предишна страница</font></a> "; 
} 
else echo "<font face=\"Trebuchet MS\">Предишна страница</font> "; 

if (!$page or ($page > $total)) { 
   $page="1"; 
} 

if ($total < 6) { 
   for($i=1 ; $i<=$total ; $i++) { 
      if ( ($page)==$i ) { 
         echo "<b>$i</b> "; 
      } 
      else { 
         echo "<a href=\"?page=".$i."\">".$i."</a> "; 
      } 
   } 
} 
else { 
   for($i=1 ; $i<=3 ; $i++) { 
      if ( ($page)==$i ) { 
         echo "<b>$i</b> "; 
      } 
      else { 
         echo "<a href=\"?page=".$i."\">".$i."</a> "; 
      } 
   } 
    
   if ($page <= 3) { 
      if ($page == 3) echo "<a href=\"?page=4\">4</a> "; 
      echo "... "; 
      for ($i=$total-2; $i<=$total; $i++) 
         echo "<a href=\"?page=".$i."\">".$i."</a> "; 
   } 
    
   if ( ($page == 4) or ($page == 5) ) { 
      for ($i=$page; $i<=$page+1; $i++) { 
         if ($page == $i) echo "<b>$i</b> "; 
         else echo "<a href=\"?page=".$i."\">".$i."</a> "; 
      } 
      echo "... "; 
      for ($i=$total-2; $i<=$total; $i++) 
         echo "<a href=\"?page=".$i."\">".$i."</a> "; 
   } 
    
   if ( ($page > 5) and ($page < ($total - 4)) ) { 
      echo "... "; 
      for ($i=$page-1; $i<=$page+1; $i++) { 
         if ($page == $i) echo "<b>$i</b> "; 
         else echo "<a href=\"?page=".$i."\">".$i."</a> "; 
      } 
      echo "... "; 
      for ($i=$total-2; $i<=$total; $i++) 
         echo "<a href=\"?page=".$i."\">".$i."</a> "; 
   } 
    
   if ( $page > ($total - 5) ) { 
      echo "... "; 
      for ($i=$total-5; $i<=$total; $i++) { 
         if ($page == $i) echo "<b>$i</b> "; 
         else echo "<a href=\"?page=".$i."\">".$i."</a> "; 
      } 
   } 
} 

if ($page < $total) { 
   $next = ($page + 1); 
   echo "<a href=\"?page=$next\"><font face=\"Trebuchet MS\">Следваща страница</font></a> "; 
} 
else echo "<font face=\"Trebuchet MS\">Следваща страница</font>";

?>
 
ПЕРФЕКТНО, само че ми извежда резултатите от най-старите към най-новите. Тоест старите са на първите страници, а новите на последните. То има и някаква логика в това, но на мен ми трябва в обратен ред. Тоест новите на първите страници, старите на по-задните.

Май тука се крие този номер:

$redove=mysql_query("SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time ");

$query="SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time LIMIT $limit,$pp";

при ORDER by.. май на второто, ама нямам си на идея как да го направя .. то даже може и да греша. :roll:


Иначе браво за старанията които си положил ! Много съм ти благодарен :?:
 
и имам един въпрос относно GET-а.

Има ли начин някак си да се манипулира нещо.. нещо нередно да се направи.. някой номер с този гет.. някой да ми направи 'боза' в сайта ?

Некоректни GET-тове POST-ове.. нали имаше такива неща..
 
Код:
 $redove=mysql_query("SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time DESC"); 

$query="SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time DESC LIMIT $limit,$pp";

Код:
$redove=mysql_query("SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time ASC"); 

$query="SELECT t.topic_time , t.topic_title,t.forum_id,t.topic_id, t.topic_views,t.topic_replies,t.topic_type,u.username from phpbb_topics t,phpbb_users u WHERE t.forum_id=5 and t.topic_poster=u.user_id ORDER BY t.topic_time ASC LIMIT $limit,$pp";

Едини варянт ще подрежда то последна към 1-ва а другия от 1-ва към последна. пробвай кои как ще е.

за GET и POST прочети урока ми за кавички.
 

Back
Горе