Помощ, проблем със страницирането

oveRLuckEd

Registered
Здравейте на всички,
имам следния проблем - опитвам се да вмъкна странициране в една класация, но нещо не успявам, връзката трябва да е с MSSQL :( , ето го и кода:
Код:
<? 
require('config.php');
require "paging.php";

$pp = "41";
$table = "Character";



$total = mssql_result(mssql_query("SELECT COUNT(*) FROM $table"),0);
$numofpages = ceil($total / $pp);
if (!isset($_GET['page'])) {
    $page = 1;
}
else {
$page = $_GET['page'];
}
$limitvalue = $page * $pp - ($pp);

$ranking = "Select Name,Class,cLevel,Resets,MapNumber,Dexterity,Vitality,Energy,Money,Strength,PkCount,CtlCode from Character order by Resets desc, clevel desc LIMIT $limitvalue, $pp";
$result = mssql_query($ranking);
echo '<center>
<table width="900" class="sample" >                
<tr>
<td align=center width="1" height="1">#</td>
<td align=center>Name</td>
<td align=center>Class</td>
<td align=center>[<font color="red">Resets</font>]</td>
<td align=center>[<font color="green">Level</font>]</td>
<td align=center>Location
<td align=center>Strength</td>
<td align=center>Agility</td>
<td align=center>Vitality</td>
<td align=center>Energy</td>
<td align=center>Zen</td>
<td align=center>PK</td>
</tr>';

for($i=0;$i < mssql_num_rows($result);++$i)
{
$row = mssql_fetch_row($result);
$rank = $i+1;




echo "
<tr>
<td align='center'>$rank.</td>
<td align=center><b>$row[0]</b></td>
<td align=center>$row[1]</td>
<td align=center>[<font color='red'><b>$row[3]</b></font>]</td>
<td align=center>[<font color='green' align='left'><b>$row[2]</b></font>]</td>
<td align=center>$row[4]</td>
<td align=center>$row[9]</td>
<td align=center>$row[5]</td>
<td align=center>$row[6]</td>
<td align=center>$row[7]</td>
<td align=center>$row[8]</td>
<td align=center>$row[10]</td>
</tr>
";
}



echo '<br>';
echo '<b>Общо страници: '.round($numofpages).'</b><br>';
per_page("index.php?&page=%page", "3");
?></center></table>

Благодаря предварително на всички отзовали се.
 
Ето ти едно много просто странициниране което аз ползвам.

Преди заявката.
Код:
if(!isset($_GET['page']))
{
$page = 1;
}
else {
$page = intval($_GET['page']);
}
$max_results = 18;
$from = (($page * $max_results) - $max_results);

В заявката..
Код:
LIMIT $from, $max_results

След Заявката.
Код:
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM gameusers"),0);
$total_pages = ceil($total_results / $max_results);

echo "<table class=\"allpred\" width=\"100%\"><tr><td class=\"inmenu\" align=\"center\"><b>Страница :</b>";
if($page > 1){
$prev = ($page - 1);
echo "<a  class=\"page\" href=\"$prev\"><b></b></a>";
}

for($i = 1; $i <= $total_pages; $i++){
if(($page) == $i){
echo "$i ";
} else {
echo "<a  class=\"page\" href=\"?page=$i\"><b>$i</b></a> ";
}
}
if($page < $total_pages){
$next = ($page + 1);
echo "<a class=\"page\" href=\"$next\"><b></b></a>";
}
 
echo "</td></tr></table></div>";

Дано го разбереш. Като цяло е много лесно оправяш си само заявките най-долу да брой в твойта БД и вечи си оправяш кое да ти показва.
Текуща, Следваща бля бля бля ;)
Успех.
 
Мерси за помоща, но нещо не мога да се оправя мисля че е заради връзката с mssql а не с mysql, ако може да го вместиш в моя код и да го направиш за mssql? Пробвах като сменя mysql на mssql, но не е само това всякаш.
 
Не съм чувал досега за Mssql... сори за това, но дори не знам дали има такова нещо.
А за да ти го вградя сега ще пробвам.
 
Извинявам се за повторния пост.
Пробвай така.
Код:
<?
require('config.php');
require "paging.php";

$table = "Character";

 if(!isset($_GET['page']))
{
$page = 1;
}
else {
$page = intval($_GET['page']);
}
$max_results = 18;
$from = (($page * $max_results) - $max_results);	

$ranking = "Select Name,Class,cLevel,Resets,MapNumber,Dexterity,Vitality,Energy,Money,Strength,PkCount,CtlCode from Character order by Resets desc, clevel desc LIMIT  $from, $max_results";
$result = mysql_query($ranking);
echo '<center>
<table width="900" class="sample" >               
<tr>
<td align=center width="1" height="1">#</td>
<td align=center>Name</td>
<td align=center>Class</td>
<td align=center>[<font color="red">Resets</font>]</td>
<td align=center>[<font color="green">Level</font>]</td>
<td align=center>Location
<td align=center>Strength</td>
<td align=center>Agility</td>
<td align=center>Vitality</td>
<td align=center>Energy</td>
<td align=center>Zen</td>
<td align=center>PK</td>
</tr>';

for($i=0;$i < mysql_num_rows($result);++$i)
{
$row = mysql_fetch_row($result);
$rank = $i+1;




echo "
<tr>
<td align='center'>$rank.</td>
<td align=center><b>$row[0]</b></td>
<td align=center>$row[1]</td>
<td align=center>[<font color='red'><b>$row[3]</b></font>]</td>
<td align=center>[<font color='green' align='left'><b>$row[2]</b></font>]</td>
<td align=center>$row[4]</td>
<td align=center>$row[9]</td>
<td align=center>$row[5]</td>
<td align=center>$row[6]</td>
<td align=center>$row[7]</td>
<td align=center>$row[8]</td>
<td align=center>$row[10]</td>
</tr>
";
}



echo '<br>';
	
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM Character"),0);
$total_pages = ceil($total_results / $max_results);

echo "<table width=\"100%\"><tr><td align=\"center\"><b>Страница :</b>";
if($page > 1){
$prev = ($page - 1);
echo "<a  class=\"page\" href=\"$prev\"><b></b></a>";
}

for($i = 1; $i <= $total_pages; $i++){
if(($page) == $i){
echo "$i ";
} else {
echo "<a  class=\"page\" href=\"?page=$i\"><b>$i</b></a> ";
}
}
if($page < $total_pages){
$next = ($page + 1);
echo "<a class=\"page\" href=\"$next\"><b></b></a>";
}
 
echo "</td></tr></table>"; 


?></center></table>
 
Да, грешка дава, защото където е написано mysql би трябвало да е mssql, само че нещо не става и заради това така, трябва да ми извлича данните от mssql, не от mysql, ето и грешките:
Код:
Warning: mssql_query() [function.mssql-query]: message: Line 1: Incorrect syntax near 'LIMIT'. (severity 15) in C:\xampp\htdocs\rankings.php on line 18

Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs\rankings.php on line 18

Warning: mssql_num_rows(): supplied argument is not a valid MS SQL-result resource in C:\xampp\htdocs\rankings.php on line 36
.
 

Back
Горе