[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать приоритет в таблице
Kenpack
Здравствуйте.
У меня появилась проблема, которую я не могу решить, то есть не знаю как именно. У меня на сайте есть таблица, в ней имеется сортировка и постраничная навигация. И когда я нажимаю например на (просмотры), то естественно таблица выдаст мне те статьи, где больше просмотров, или меньше, и такой код $i++, который ставит места статьям, в прибавку $i = 1+2*($page-1); чтобы места ставились дальше при постраничном навигации. Изначально таблица сортирует по голосам (votes_up), и мне вот что нужно сделать: Когда я нажимаю на просмотры (view), то таблица сравнивала по просмотрам и чтобы $i++ ставил места по голосам(votes_up). Надеюсь я правильно высказал свою мысль.

вот test.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<?php
include("config.php");
?>
<head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<
title>Таблица</title>
<
link href="style.css" rel="stylesheet" type="text/css">
<
script type='text/javascript' src='jquery.js'></script>
<
script type='text/javascript' src="jquery.cookies.js"></script>
<
script type='text/javascript' src="jquery_vote.js"></script>
</
head>
<
body>
<?php

$query = "SELECT COUNT(*) FROM entries";
$res = mysql_query( $query );
$total = mysql_result( $res, 0, 0 );


if ( isset($_GET['page']) ) {
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
} else {
$page = 1;
}

$uri = $_SERVER['PHP_SELF'].'?';
if ( $_SERVER['QUERY_STRING'] != '' ) {
foreach( $_GET as $key => $value ) {
if ( $key != 'page' ) $uri = $uri.$key.'='.urlencode($value).'&';
}
}


$cnt_pages = ceil( $total / ITEMS_PER_PAGE );
if ( $page > $cnt_pages ) { echo 'Такой страницы не существует'; die(); }

$start = ( $page - 1 ) * ITEMS_PER_PAGE;


$orderby = 'votes_up';
$sort = 'DESC';
if ( isset( $_GET['orderby'] ) and isset( $_GET['sort'] ) ) {
if ( in_array( $_GET['orderby'], array('title', 'votes_up', 'view' ) ) ) $orderby = $_GET['orderby'];
if ( in_array( $_GET['sort'], array( 'ASC', 'DESC' ) ) ) $sort = $_GET['sort'];
}

$query = 'SELECT *
FROM entries
ORDER BY '
.$orderby.' '.$sort.'
LIMIT '
.$start.', '.ITEMS_PER_PAGE;
$res = mysql_query( $query );



echo '<table border="1" cellpadding="4" cellspacing="0" style="border-collapse: collapse; style="width:690px" width="690px"; empty-cells: show;">'."\n";
echo '<tr>';
if ( $sort == 'ASC' ) {
$tmp = 'DESC';
$image = 'down.gif';
} else {
$tmp = 'ASC';
$image = 'up.gif';
}
if ( $orderby == 'title' )
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=title&sort='.$tmp.'&page='.$page.'">Наименование</a> <img src="'.$image.'" alt="" /></th>';
else
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=title&sort=ASC&page='.$page.'">Наименование</a></th>';
if ( $orderby == 'votes_up' )
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=votes_up&sort='.$tmp.'&page='.$page.'">Голоса</a> <img src="'.$image.'" alt="" /></th>';
else
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=votes_up&sort=ASC&page='.$page.'">Голоса</a></th>';
if ( $orderby == 'view' )
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=view&sort='.$tmp.'&page='.$page.'">Просмотры</a> <img src="'.$image.'" alt="" /></th>';
else
echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=view&sort=ASC&page='.$page.'">Просмотры</a></th>';
echo '</tr>'."\n";

$res = mysql_query($query);
$i = 1+2*($page-1);
while($prd = mysql_fetch_array($res))
{
printf("<div class='textserv'>
<table width='690' border='1px solid' cellpadding='0' cellspacing='0' style='max-width:690px;background-color:#FFF;'>
<tr>
<td width='46' height='30' style='text-align:center'>%s</td>
<div><td width='494'><div class='toptext'><a href='title.php?id=%s'>%s</a></div><div><a href='javascript:;' class='vote_up' id='%s'><div class='votes_count' id='votes_count %s' <div class='num_vote'>%s<img src='images/thumb_up.png' height='25px' class='imagevote'><div class='imagetext'></a></div>
</td>
<td width='142'><div><div class='imageglas'><div class='textglas'>%s</div>Просмотры:</div></div></td>
</tr>
<table class='textleftserv' height='100' border='1px solid' cellspacing='0' cellpadding='0' align='center'>
<tr>

<td class='tableright' style='vertical-align:top; background-color:#FFF; max-width:530px;'><div>%s</div></td>
</tr>
</table>
</table>
</div>"
, $i++,$prd['id'],$prd['title'],$prd['id'],$prd['id'],$prd['votes_up'],$prd['view'],$prd['title']);
}
echo '</table>'."\n";


if ( $cnt_pages > 1 )
{
echo '<div style="margin:1em 0"> Страницы: ';
if ( $page > 3 )
$startpage = '<a href="'.$uri.'page=1"><<</a> ... ';
else
$startpage = '';
if ( $page < ($cnt_pages - 2) )
$endpage = ' ... <a href="'.$uri.'page='.$cnt_pages.'">>></a>';
else
$endpage = '';
if ( $page - 2 > 0 )
$page2left = ' <a href="'.$uri.'page='.($page - 2).'">'.($page - 2).'</a> | ';
else
$page2left = '';
if ( $page - 1 > 0 )
$page1left = ' <a href="'.$uri.'page='.($page - 1).'">'.($page - 1).'</a> | ';
else
$page1left = '';
if ( $page + 2 <= $cnt_pages )

$page2right = ' | <a href="'.$uri.'page='.($page + 2).'">'.($page + 2).'</a>';
else
$page2right = '';
if ( $page + 1 <= $cnt_pages )
$page1right = ' | <a href="'.$uri.'page='.($page + 1).'">'.($page + 1).'</a>';
else
$page1right = '';
echo $startpage.$page2left.$page1left.'<strong>'.$page.'</strong>'.$page1right.$page2right.$endpage."\n";

echo '</div>'."\n";
}
?>
</body>
</
html>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.