Грешка в код за странициране

kriss

Registered
какво греша в този код
Код:
<?php 
//Попълвате данните за свързване 
$connect = mysql_connect("localhost", "...", "..."); 
mysql_query('SET NAMES utf8'); 
mysql_query('SET CHARACTER SET utf8_general_ci');
$select_db = mysql_select_db("..."); 
mysql_query('set names cp1251',$connect); 
if($_GET['id']){ 
$lyricid = $_GET['id']; 
mysql_query("SET NAMES cp1251");
$query1 = "SELECT * FROM `lyrics` where id = '$lyricid'"; 
$result1=mysql_query($query1); 
while($r = mysql_fetch_array($result1)) { 
extract($r); 
$text2 = nl2br("$text"); 
echo "<a href='biseri?id=$id'>бисер №$id</a><br></ hr>$text"; 
} 
} 
else { 
mysql_query("SET NAMES cp1251");
$query = "SELECT * FROM `lyrics` ORDER BY id DESC"; 
$result=mysql_query($query); 
while($r = mysql_fetch_array($result)) { 
extract($r); 
echo "<a href='biseri.php?id=$id' class='menu_h'>бисер №$id</a><br>"; 
} 
}   

$server = "localhost"; 
$dbusername = "..."; 
$dbpassword = "..."; 
$db_name = "..."; 
$table_name = "l..."; 
//server connfigure 
//колко резултата на страница 
$pp = "25"; 
//колко резултата на страница 

$page=$_GET['page']; //присвояваме стойността на page 

if(!$_GET['page']) //ако не е взета page да върне 1-ца 
{ 
$page="1"; 
} 

$limit = ($pp*$page)-$pp; //определяме лимитирането 

mysql_connect($server, $dbusername, $dbpassword)or die("1111"); 
@mysql_select_db($db_name) or die("2222"); 
$redove=mysql_query("SELECT * FROM $table_name"); 

$max=mysql_numrows($redove); //преброяваме редовете 
$total=ceil($max/$pp); //пресмятаме броя на страниците 

mysql_connect($server, $dbusername, $dbpassword)or die("3333"); 
@mysql_select_db($db_name) or die("4444"); 
$query="SELECT * FROM $table_name ORDER BY `id` DESC LIMIT $limit,$pp"; 
$result=mysql_query($query); 

$num=mysql_numrows($result); 

mysql_close(); 

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

$data=mysql_result($result,$i,"data"); 

echo $data."<br>"; 

$i++; 
} 

echo "<br><br><br><br>"; 

//от тук започва кода за показването на страниците 
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 < 10) { 
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 == 5) $parva.= "<a href=\"?page=4\">4</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>";
?>

грешката е на реда:
Код:
$data=mysql_result($result,$i,"data");

хелп :( :cry:

Едит: грешката е
Код:
Warning: mysql_result() [function.mysql-result]: data not found in MySQL result index 5 in /home/funbgc/public_html/biseri.php on line 102
и се повтаря 7-8 пъти
 
Офф , какви ги пиша и аз ; )
Тя грешката ти е дадена ,че нямаш поле data
На тоя ред може да изкараш данните ,които ти трябват
$data=mysql_result($result,$i,"data");
Ако искаш да изкараш примерно потребителското име ,което е в полето username ,ще стане
$data=mysql_result($result,$i,"username");
 
Едитнах си поста ,виж сега дали ще може да оправиш грешката :idea:
 
офф нещо не мога да го оправя..
някой може ли да оправи страницирането така че да вади по 15 ид-та от бд-то на страница
 
Само си оправи данните , които искаш да се изведат.
Код:
<?php

//$ns - номер страница
//$br - брой страница
//$one - първа
//$sl - следваща
//$pl - последна
//$pr - предишна
$br = 15;
$pageNum = 1;
if(isset($_GET['page'])) {
$pageNum = $_GET['page'];
}
$redove = ($pageNum - 1) * $br;
$query = " SELECT * FROM lyrics "." LIMIT $redove, $br";
$result = mysql_query($query) or die('Не си избрал страница!');

while($row = mysql_fetch_array($result)) {
$title = $row['title'];
echo "$title";
}

$query = "SELECT COUNT(id) AS numrows FROM lyrics";
$result = mysql_query($query) or die('Не си избрал страница!');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$maxPage = ceil($numrows/$br);
$self = $_SERVER['PHP_SELF'];
$ns = '';
for($page = 1; $page <= $maxPage; $page++) {
if ($page == $pageNum) {
$ns .= " $page ";
}
else {
$ns .= " <a href=\"$self?page=$page\">$page</a> ";
}}
if ($pageNum > 1) {
$page = $pageNum - 1;
$pr = " <a href=\"$self?page=$page\"> [<] </a> ";
$one = " <a href=\"$self?page=1\">[първа]</a> ";
}
else {
$pr = ' ';
$one = ' ';
}
if ($pageNum < $maxPage) {
$page = $pageNum + 1;
$sl = (" <a href=\"$self?page=$page\"> [>] </a> ");
$pl = (" <a href=\"$self?page=$maxPage\">[последна]</a> ");
}
else {
$sl = '';
$pl = '';
}
echo $one . $pr . $ns . $sl . $pl; 
?>
 
а откъде става настройването да вади ид-та че нещо кода работи обаче показва всичките резултати на всички страници(т.е. имам около 200 ид-та и то ги вади на всички страници)...
 

Back
Горе