Здравствуйте.
У меня появилась проблема, которую я не могу решить, то есть не знаю как именно. У меня на сайте есть таблица, в ней имеется сортировка и постраничная навигация. Когда я нажимаю например на (просмотры), то естественно таблица выдаст мне те статьи, где больше просмотров, или меньше, и такой код $i++, который ставит места статьям, в прибавку $i = 1+2*($page-1); чтобы места ставились дальше при постраничном навигации. Изначально таблица сортирует по голосам (votes_up), и мне вот что нужно сделать: Когда я нажимаю например на просмотры (view), то таблица сравнивала по просмотрам и чтобы $i++ ставил места по голосам(votes_up). Надеюсь я правильно высказал свою мысль.
index.php:
PHP |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
| <!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> |
|
config.php
PHP |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <?php
$dblocation = "localhost"; // Имя сервера
$dbuser = "Danil"; // Имя пользователя
$dbpswrd = "1234561"; // Пароль
$dbname = "entries"; // Имя базы данных
DEFINE('ITEMS_PER_PAGE', 2);
// Соединение с сервером базы данных
$dblink = mysql_connect( $dblocation, $dbuser, $dbpswrd);
mysql_query('SET NAMES utf8');
// Выбираем базу данных
mysql_select_db( $dbname, $dblink );
?> |
|