0 / 0 / 0
Регистрация: 26.08.2013
Сообщений: 29
1

Приоритет в поиске

27.02.2014, 20:10. Показов 425. Ответов 0
Метки нет (Все метки)

Здравствуйте.
У меня появилась проблема, которую я не могу решить, то есть не знаю как именно. У меня на сайте есть таблица, в ней имеется сортировка и постраничная навигация. Когда я нажимаю например на (просмотры), то естественно таблица выдаст мне те статьи, где больше просмотров, или меньше, и такой код $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 );
?>
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2014, 20:10
Ответы с готовыми решениями:

Релевантные страницы в общем поиске и в поиске по сайту
Всегда считалось, что если делать запрос с ограничением по сайту, то 1-я страница в выдаче по этому...

Приоритет Wi-Fi
Здрасте. Имеется 2 компа, к одному подключён модем и он раздаёт по Wi-Fi на другой комп. Но если...

Приоритет
Всем доброго дня! Подскажите пожалуйста ответ на такой вопрос: есть БД Access с данными и...

Приоритет операций
Здравствуйте, а не подскажите что в С-подобных языках приоритетнее: сложение/вычитание, побитовые...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2014, 20:10

Приоритет операторов
int x = 4; int y = 5; cout &lt;&lt; (x == y ? ++x, ++y : --x, --y); Оператор запятая здесь не...

Приоритет операторов
Магия. Объясните мне почему так. &gt;&gt;&gt; 1 &gt; 2 == False False &gt;&gt;&gt; (1 &gt; 2) == False True &gt;&gt;&gt; 1 &gt;...

Приоритет подсетей
Доброго дня! Есть такая тема: Есть два ПК с Win7 На одном (назовем ПК1) есть расшаренная по...

Приоритет потоков
Здравстуйте. Я сделал форму, которая может выполнять некоторую работу. Это работа выполняется в...

Приоритет знаний С#
Привет. Я все капитально готовлюсь, время стараюсь экономить, поэтому вот такой вопрос. Я уже в...

Приоритет сообщений
Всем привет :). У меня есть программа, в которой два сообщения: case WM_LBUTTONDOWN: {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru