Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
1

вверх и вниз

16.11.2011, 16:09. Показов 2119. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
форма вывода
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
<?php
  Error_Reporting(E_ALL & ~E_NOTICE); 
 
  $titlepage="Управление блоком\n \"Новости\" $version";
  include "../header.php";  
 include "../util/sitebar_fok.php";
require_once('../config.php');
 
  if(!preg_match("|^[\d]*$|",$_POST['page'])) puterror("Ошибка при обращении к блоку");
  $page = $_GET['page'];
  if(empty($page)) $page = 1;
 
  $query = "SELECT id,
                   body,
                   corder
            FROM demo
ORDER BY corder ASC";
  $new = mysql_query($query);
 
if ($new)
  {
    ?>
<a href=addform.php>Добавить</a>
<table cellpadding="0" cellspacing="0" border="0" >
        <tr>
    </tr>
    </table><br>
    <table width=100% class=bodytable border=1 align=center cellpadding=5 cellspacing=0 bordercolorlight=gray bordercolordark=white>
      <tr class=tableheadercat align="center">
        <td width=120><p class=zagtable>Категория</p></td>
      </tr>
    <?php
    while($news = mysql_fetch_array($new))
    {
      echo "<tr $colorrow >
              <td><p class=help align=center>".$news['body']."</p></td>
              <td align=center><p><a href=edit.php?catalog_ord_id=".$news['id']."&catalog_ord_type=1>вверх</a></td>
              <td align=center><p><a href=edit.php?catalog_ord_id=".$news['id']."&catalog_ord_type=0>вниз</a></td>
            </tr>";
    }
    echo "</table>";
  }
  else puterror("Ошибка при обращении к блоку");
 
  
  echo "</td></tr></table>";
include "../footer.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
<?php
  Error_Reporting(E_ALL & ~E_NOTICE); 
 
   require_once('../config.php');
  include_once "function_lib.php";
  $dbTable = 'demo';
  $cordPar = getOrder($dbTable);
 
   // Изменение уровня материала в списке
        // Change level of letter in list
        $params_ord_id = (isset($_REQUEST['catalog_ord_id']) && !empty($_REQUEST['catalog_ord_id'])) ? (int)$_REQUEST['catalog_ord_id'] : -1;
$params_ord_type = (isset($_REQUEST['catalog_ord_type']) && !empty($_REQUEST['catalog_ord_type'])) ? (int)$_REQUEST['catalog_ord_type'] : -1;
 
    
    
        // Изменение уровня элемента в БД и списке
        if ($params_ord_id != -1 && $params_ord_type != -1)
        {
            $getParamsCorder = -1;
            $getParamsCorder = GetCorderForSwap($params_ord_id, $dbTable);
 
            $params_ord = $getParamsCorder;
        SwapOrder($params_ord_id, $params_ord_type, $params_ord, $getParamsCorder, $dbTable);
        }
 
  // Формируем и выполняем SQL-запрос на обновление новостной позиции
  $query = "UPDATE $dbTable SET 
                                corder = $cordPar
            WHERE id=".$params_ord_id;
  if(mysql_query($query)) header("Location: aboniment.php?page=".$_GET['page']);
echo $query;
  
 
  // Вспомогательная функция для вывода ссылок возврата
  function links($msg)
  {
    echo "<p>".$msg."</p>";
    echo "<p><a href=# onClick='history.back()'>Вернуться к правке предмета</a></p>";
    echo "<p><a href=drujba.php>Администрирование расписание</a></p>";
    exit();
  }
?>
и function_lib.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
<?php
        //  Получить значения из corder
        function GetCorderForSwap($id, $dbTable)
        {
            $t = "SELECT corder FROM $dbTable WHERE id = '%d'";
            $query = sprintf($t, mysql_real_escape_string($id));
 
            $result = mysql_query($query) or exit("Query failed: " . mysql_error());
            if ($line = mysql_fetch_array($result, MYSQL_ASSOC))
                $cordPar = $line["corder"];
 
            return $cordPar;
        }
 
    // Изменение уровня материала в списке
    function SwapOrder($__ord_id, $__ord_type, $__ord, $__corder, $dbTable)
    {
        if($__corder == $__ord)
        {
                        $__ord_2 = -1;
                        $__ord_id_2 = -1;
            
                        if($__ord_type == 0) 
                                $query = "
                                        SELECT id, corder 
                                        FROM $dbTable 
                                        WHERE (corder < $__ord) 
                                        ORDER BY corder DESC 
                                        LIMIT 1
                                ";
                        else
                                $query = "
                                        SELECT id, corder 
                                        FROM $dbTable  
                                        WHERE (corder > $__ord) 
                                        ORDER BY corder 
                                        LIMIT 1
                                ";
echo $query;
                        $result = mysql_query($query) or exit("Query failed: ". mysql_error());
                        if($line = mysql_fetch_array($result, MYSQL_ASSOC))
            {
                                $__ord_id_2 = $line["id"];
                                $__ord_2 = $line["corder"];
                        }
                        
                
                        if($__ord_id_2 != -1)
            {
                                $query = "UPDATE $dbTable SET corder = $__ord_2 WHERE id = $__ord_id";
                                $result = mysql_query($query) or exit("Query failed: ". mysql_error());
                
                                $query = "UPDATE $dbTable SET corder = $__ord WHERE id = $__ord_id_2";
                                $result = mysql_query($query) or exit("Query failed: ". mysql_error());
                        }
                }
    }
//
//  Возвращает последний номер в списке
//  Эта ф-я нужна при добавлении материала, чтобы увеличить его номер на ед-цу (поле corder)
//
function getOrder($dbTable)
{
    $last_ord = 0;
    
        $query = "SELECT if(MAX(corder) IS NULL, 0, MAX(corder) + 1) AS ord FROM $dbTable";
        $result = mysql_query($query) or exit("Query failed: ". mysql_error());
        if($line = mysql_fetch_array($result, MYSQL_ASSOC))
                $last_ord = $line["ord"];
        
    return $last_ord;
}
?>
почему то при нажатии вверх или вниз corder только увеличивается а должен либо уменьшаться либо увеличиваться
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2011, 16:09
Ответы с готовыми решениями:

Вывести сообщения в чате не снизу вверх, а сверху вниз
Делаю чат ,так вот мне нужно вивести 20 последних сообщений но мне нужно вивести не снизу вверх а...

Движок полей формы/ Как сделать две кнопочки 'вверх ' и 'вниз' для каждого поля?
Ситуация - в файле содержится список названий полей формы. Можно добавлять и удалять. Список...

Массив: По нажатию кнопок «Вверх» и «Вниз» сортировать массив по возрастанию и убыванию соответственно.
Сгенерировать двумерный массив, заполнив его случайными числами* в диапазоне от 1 до 100. По...

Прокрутка вниз!!!
Как мне сделать чтобы страница при её загруске пракрутилась в самый низ?

10
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
16.11.2011, 16:35 2
Цитата Сообщение от little_dita Посмотреть сообщение
// Формируем и выполняем SQL-запрос на обновление новостной позиции $query = "UPDATE $dbTable SET corder = $cordPar WHERE id=".$params_ord_id; if(mysql_query($query)) header("Location: aboniment.php?page=".$_GET['page']); echo $query;
убери это, без него должно работать

Добавлено через 2 минуты
эта ф-я выполняет эту работу
Цитата Сообщение от little_dita Посмотреть сообщение
SwapOrder($params_ord_id, $params_ord_type, $params_ord, $getParamsCorder, $dbTable);
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
16.11.2011, 16:41  [ТС] 3
едит так сделала
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
<?php
  Error_Reporting(E_ALL & ~E_NOTICE); 
 
   require_once('../config.php');
  include_once "function_lib.php";
  $dbTable = 'demo';
  $cordPar = getOrder($dbTable);
 
   // Изменение уровня материала в списке
        // Change level of letter in list
        $params_ord_id = (isset($_REQUEST['catalog_ord_id']) && !empty($_REQUEST['catalog_ord_id'])) ? (int)$_REQUEST['catalog_ord_id'] : -1;
$params_ord_type = (isset($_REQUEST['catalog_ord_type']) && !empty($_REQUEST['catalog_ord_type'])) ? (int)$_REQUEST['catalog_ord_type'] : -1;
 
    
    
        // Изменение уровня элемента в БД и списке
        if ($params_ord_id != -1 && $params_ord_type != -1)
        {
            $getParamsCorder = -1;
            $getParamsCorder = GetCorderForSwap($params_ord_id, $dbTable);
 
            $params_ord = $getParamsCorder;
        SwapOrder($params_ord_id, $params_ord_type, $params_ord, $getParamsCorder, $dbTable);
        }
 
  // Формируем и выполняем SQL-запрос на обновление новостной позиции
  $query = "UPDATE $dbTable SET 
                                corder = $cordPar";
            
  
 
  // Вспомогательная функция для вывода ссылок возврата
  function links($msg)
  {
    echo "<p>".$msg."</p>";
    echo "<p><a href=# onClick='history.back()'>Вернуться к правке предмета</a></p>";
    echo "<p><a href=drujba.php>Администрирование расписание</a></p>";
    exit();
  }
?>
нажимаю нажимаю вверх выдает
SELECT id, corder FROM demo WHERE (corder > 12) ORDER BY corder LIMIT 1
и corder uvelicivaetsq
a если нажать вниз
выдает пустое окно и кордер не меняется(
0
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
16.11.2011, 16:45 4
убери ты этот запрос совсем
Цитата Сообщение от little_dita Посмотреть сообщение
// Формируем и выполняем SQL-запрос на обновление новостной позиции $query = "UPDATE $dbTable SET corder = $cordPar";
его не должно быть

Добавлено через 38 секунд
Цитата Сообщение от little_dita Посмотреть сообщение
isset($_REQUEST['catalog_ord_id']) && !empty($_REQUEST['catalog_ord_id']
зачем тут еще и на пустоту проверять? Если он существует, то мы передаем ему соответствующее значение, иначе -1. Тут проверка на пустоту ни к чему
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
16.11.2011, 16:48  [ТС] 5
убрала вверх работает
а вниз всеравно пустое окно и нечего не меняется
0
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
16.11.2011, 16:51 6
Цитата Сообщение от little_dita Посмотреть сообщение
а вниз всеравно пустое окно и нечего не меняется
проверь таблицу, возможно у тя обнулились значения в поле corder.
Если так, то вручную задай снова значения от 0 и вверх.
Конечно это проблему не решает, но посмотри в этом ли дело
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
16.11.2011, 16:51  [ТС] 7
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
зачем тут еще и на пустоту проверять? Если он существует, то мы передаем ему соответствующее значение, иначе -1. Тут проверка на пустоту ни к чему
какуь именно удалить?
PHP
1
2
3
4
// Изменение уровня материала в списке
        // Change level of letter in list
        $params_ord_id = (isset($_REQUEST['catalog_ord_id']) && !empty($_REQUEST['catalog_ord_id'])) ? (int)$_REQUEST['catalog_ord_id'] : -1;
$params_ord_type = (isset($_REQUEST['catalog_ord_type']) && !empty($_REQUEST['catalog_ord_type'])) ? (int)$_REQUEST['catalog_ord_type'] : -1;
0
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
16.11.2011, 16:52 8
Цитата Сообщение от little_dita Посмотреть сообщение
какуь именно удалить?
оставь обе строки, просто убери проверку на пустоту, вот этот момент
Цитата Сообщение от little_dita Посмотреть сообщение
&& !empty($_REQUEST['catalog_ord_id'])
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
16.11.2011, 16:57  [ТС] 9
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
проверь таблицу, возможно у тя обнулились значения в поле corder.
Если так, то вручную задай снова значения от 0 и вверх.
Конечно это проблему не решает, но посмотри в этом ли дело
да не чего не обнулилось
Миниатюры
вверх и вниз  
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
16.11.2011, 17:00  [ТС] 10
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
оставь обе строки, просто убери проверку на пустоту, вот этот момент
убрала и сразу заработало спасибо
0
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
16.11.2011, 17:00 11
когда показывается белый экран, какой юрл у него?
Хочу увидеть на каком файле он застревает
1
16.11.2011, 17:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2011, 17:00
Помогаю со студенческими работами здесь

Перекинуть пользователя вниз
Здравствуйте. Как перекинуть пользователя вниз страницы?

как выйти на одну папку вверх
А если мне например нужно выйти на одну папку вверх (../) - то как нужно модефицировать код,...

Построение таблицы сверху вниз
Нужна помощь! есть таблица &lt;table&gt; &lt;tbody&gt; &lt;?$k=0;?&gt; &lt;?foreach;?&gt; &lt;?if...

Алгоритм для построения меню снизу вверх
Ребята, помогите! Знаю, что это несложно, но почему-то сижу над этим вопросом очень долго. Надо...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru