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

Ошибка в запросе

11.11.2011, 13:03. Показов 3010. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
выдает мне ошибку в файле обработки
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''corder' ) VALUES ( 'dfghm', 'fcghvb', '', '', '', '', '', '' )' at line 11

подскажите что это ошибка вообще означает

файл добавления
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
<?php
  Error_Reporting(E_ALL & ~E_NOTICE); 
 
  if(!defined("EDIT"))
  {
    $button = "Добавить";
    $action = "add.php";
    $cat = "";
    $age = "";
    $time = "";
    $days = "";
    $price1 = "";
    $price2 = "";
    $price3 = "";
    $price4 = "";
  }
?>
<form name=form enctype='multipart/form-data' action=<?php echo $action; ?> method=post>
<table cellpadding="0" cellspacing="6">
<tr>
  <td><p class=zag2>Категория абонемента</td>
  <td></td>
  <td><input class=input size=70 type=text name=cat value='<?php echo htmlspecialchars($cat); ?>'></td>
</tr>
<tr>
  <td><p class=zag2>Возраст</td>
  <td></td>
  <td><textarea class=input name=age rows=10 cols=60><?php echo htmlspecialchars($age); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>Время</td>
  <td></td>
  <td><textarea class=input name=time rows=10 cols=60><?php echo htmlspecialchars($time); ?></textarea></td>
</tr>
<tr>
<tr>
  <td><p class=zag2>Дни</td>
  <td></td>
  <td><textarea class=input name=days rows=10 cols=60><?php echo htmlspecialchars($days); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на1 месяц</td>
  <td></td>
  <td><textarea class=input name=price1 rows=10 cols=60><?php echo htmlspecialchars($price1); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на3 месяца</td>
  <td></td>
  <td><textarea class=input name=price2 rows=10 cols=60><?php echo htmlspecialchars($price2); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на 6 месяцев</td>
  <td></td>
  <td><textarea class=input name=price3 rows=10 cols=60><?php echo htmlspecialchars($price3); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на 12 месяцев</td>
  <td></td>
  <td><textarea class=input name=price4 rows=10 cols=60><?php echo htmlspecialchars($price4); ?></textarea></td>
</tr>
<tr>
  <td></td>
  <td></td>
  <td><input class=button type=submit value=<?php echo htmlspecialchars($button); ?>></td>
</tr>
<input type=hidden name=id value=<?php echo htmlspecialchars($_GET['id']); ?>>
<input type=hidden name=start value=<?php echo htmlspecialchars($_GET['start']); ?>>
</table>
</form>
<?
  echo $help;
?>
а вот файл обработки
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
<?php
  
  Error_Reporting(E_ALL & ~E_NOTICE); 
 
  include "../config.php";
  $dbTable = "aboniment";
 
  if(empty($_POST['cat'])) links("Отсутствует категория");
  if(empty($_POST['age'])) links("Не указан возраст ");
 
//  Получить значения из 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
                                ";
                        $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;
}
 
  if (!get_magic_quotes_gpc())
  {
    $_POST['cat'] = mysql_real_escape_string($_POST['cat']);
    $_POST['age'] = mysql_real_escape_string($_POST['age']);
  }
 
  ob_start();
?>
INSERT INTO aboniment
  (
`cat`,
`age`,
`time`,
`days`,
`price1`,
`price2`,
`price3`,
`price4`,
'corder'
   )
VALUES
  (
'<?= $_POST['cat'] ?>',
'<?= $_POST['age'] ?>',
'<?= $_POST['time'] ?>',
'<?= $_POST['days'] ?>',
'<?= $_POST['price1'] ?>',
'<?= $_POST['price2'] ?>',
'<?= $_POST['price3'] ?>',
'<?= $_POST['price4'] ?>'
  )
<?php
$sQuery = ob_get_clean();
mysql_query($sQuery) or die(mysql_error());
 
 
if(mysql_query($query)) header("Location: aboniment.php?page=".$_GET['page']);
  else echo(mysql_error());
 
  function links($msg)
  {
    echo "<p>".$msg."</p>";
    echo "<p><a href=# onClick='history.back()'>Вернуться к правке</a></p>";
    echo "<p><a href=aboniment.php>Администрирование абониментов</a></p>";
    exit();
  }
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2011, 13:03
Ответы с готовыми решениями:

Ошибка в запросе к БД
Не понимаю в чем проблема 15й строки:-|

Ошибка в запросе
Добрый вечер.Провожу запрос вида INSERT INTO `rthsm_news_main` (`id`,`article_name`,`title`,`text`,`pg`) VALUES ('1','2','3','4','5') ...

Ошибка в запросе?
&lt;?php if (isset($_REQUEST)) $c = $_REQUEST; if (!mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;123&quot;)){ exit(); } ...

29
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
11.11.2011, 13:25
у тя полей 9 , а значений пердаешь 8.
Поле corder остается пустым

Добавлено через 1 минуту
Чтобы не нагроиаждать так основной файл лучше все ф-ии вынести в отдельный файл (напр., function_lib.php) и подключать как подключаешь config.php
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
11.11.2011, 13:26  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
у тя полей 9 , а значений пердаешь 8
не поняла в каком файле в обработчике что ли
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
11.11.2011, 13:31
Цитата Сообщение от little_dita Посмотреть сообщение
$dbTable
ты передаешь в ф-ии эту переменную, а она определена у тя? Вместо нее должно быть имя нужной таблицы.
Да и определение этих переменных тоже не вижу
Цитата Сообщение от little_dita Посмотреть сообщение
$__ord_id, $__ord_type, $__ord, $__corder,
Добавлено через 3 минуты
Цитата Сообщение от little_dita Посмотреть сообщение
не поняла в каком файле в обработчике что ли
да, посчитай в запросе где INSERT.
Еще одно, незнаю, разве так можно писать запрос не в кавычках???? РНР понимает то что написано просто так (без кавычек или знака $) как константу по моему, просто он умный и переводит их в строки, но так нельзя в любом случае..
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
11.11.2011, 13:31  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
ты передаешь в ф-ии эту переменную, а она определена у тя? Вместо нее должно быть имя нужной таблицы.
PHP
1
$dbTable = "aboniment";
у меня таблица aboniment
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
Да и определение этих переменных тоже не вижу
a kakie там указывать
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
11.11.2011, 13:37
напиши запрос нормально, тогда можно избавиться и ob_start(); эти ф-ии здесь не нужны и можно проверить запрос через
PHP
1
echo $query;
Добавлено через 2 минуты
Цитата Сообщение от little_dita Посмотреть сообщение
a kakie там указывать
я ж показывал. Щас ты просто объявила ф-ии, надо же их вызвать передав нужные параметры.
Объявление ф-ий можешь вынести в отдельный файл, как уже сказал

Добавлено через 2 минуты
Что это такое???
Цитата Сообщение от little_dita Посмотреть сообщение
if (!get_magic_quotes_gpc())
{
$_POST['cat'] = mysql_real_escape_string($_POST['cat']);
$_POST['age'] = mysql_real_escape_string($_POST['age']);
}
Уже говорил, еще раз повторю, избавься от волшебных кавычек через .htaccess и можешь забыть обо все что связано с волшебными кавычками
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
11.11.2011, 14:47  [ТС]
теперь мне файл обработки выдает вот это Column count doesn't match value count at row 1
сделала так
форма
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
<?php
  Error_Reporting(E_ALL & ~E_NOTICE); 
 
  include "function_lib.php";
 
  if(!defined("EDIT"))
  {
    $button = "Добавить";
    $action = "add.php";
    $cat = "";
    $age = "";
    $time = "";
    $days = "";
    $price1 = "";
    $price2 = "";
    $price3 = "";
    $price4 = "";
    $cordPar = "";
  }
?>
<form name=form enctype='multipart/form-data' action=<?php echo $action; ?> method=post>
<table cellpadding="0" cellspacing="6">
<tr>
  <td><p class=zag2>Категория абонемента</td>
  <td></td>
  <td><input class=input size=70 type=text name=cat value='<?php echo htmlspecialchars($cat); ?>'></td>
</tr>
<tr>
  <td><p class=zag2>Возраст</td>
  <td></td>
  <td><textarea class=input name=age rows=10 cols=60><?php echo htmlspecialchars($age); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>Время</td>
  <td></td>
  <td><textarea class=input name=time rows=10 cols=60><?php echo htmlspecialchars($time); ?></textarea></td>
</tr>
<tr>
<tr>
  <td><p class=zag2>Дни</td>
  <td></td>
  <td><textarea class=input name=days rows=10 cols=60><?php echo htmlspecialchars($days); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на1 месяц</td>
  <td></td>
  <td><textarea class=input name=price1 rows=10 cols=60><?php echo htmlspecialchars($price1); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на3 месяца</td>
  <td></td>
  <td><textarea class=input name=price2 rows=10 cols=60><?php echo htmlspecialchars($price2); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на 6 месяцев</td>
  <td></td>
  <td><textarea class=input name=price3 rows=10 cols=60><?php echo htmlspecialchars($price3); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на 12 месяцев</td>
  <td></td>
  <td><textarea class=input name=price4 rows=10 cols=60><?php echo htmlspecialchars($price4); ?></textarea></td>
</tr>
<tr>
  <td></td>
  <td></td>
  <td><input class=button type=submit value=<?php echo htmlspecialchars($button); ?>></td>
</tr>
<input type=hidden name=id value=<?php echo htmlspecialchars($_GET['id']); ?>>
<input type=hidden name=start value=<?php echo htmlspecialchars($_GET['start']); ?>>
</table>
</form>
<?
  echo $help;
?>
обработка
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
<?php
  
  Error_Reporting(E_ALL & ~E_NOTICE); 
 
  include "../config.php";
  include "function_lib.php";
 
  if(empty($_POST['cat'])) links("Отсутствует категория");
  if(empty($_POST['age'])) links("Не указан возраст ");
 
 if (!get_magic_quotes_gpc())
  {
    $_POST['cat'] = mysql_real_escape_string($_POST['cat']);
    $_POST['age'] = mysql_real_escape_string($_POST['age']);
  }
 
  ob_start();  
?>
INSERT INTO aboniment
  (
`cat`,
`age`,
`time`,
`days`,
`price1`,
`price2`,
`price3`,
`price4`,
`$cordPar`
   )
VALUES
  (
'<?= $_POST['cat'] ?>',
'<?= $_POST['age'] ?>',
'<?= $_POST['time'] ?>',
'<?= $_POST['days'] ?>',
'<?= $_POST['price1'] ?>',
'<?= $_POST['price2'] ?>',
'<?= $_POST['price3'] ?>',
'<?= $_POST['price4'] ?>',
'<?= $_POST['price4'] ?>',
'$cordPar'
)
<?php
$sQuery = ob_get_clean();
mysql_query($sQuery) or die(mysql_error());
 
 
if(mysql_query($query)) header("Location: aboniment.php?page=".$_GET['page']);
  else echo(mysql_error());
 
  function links($msg)
  {
    echo "<p>".$msg."</p>";
    echo "<p><a href=# onClick='history.back()'>Вернуться к правке</a></p>";
    echo "<p><a href=aboniment.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
 
$dbTable = 'aboniment';
 
// * Важно, что изменение уровня материалов в списке идет до получения списка материалов
 
    // Изменение уровня материала в списке
    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
                                ";
                        $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;
}
 
 
        // Изменение уровня материала в списке
        // Change level of letter in list
        $params_ord_id = (isset($_REQUEST['catalog_ord_id'])) ? (int)$_REQUEST['catalog_ord_id'] : -1;
        $params_ord_type = (isset($_REQUEST['catalog_ord_type'])) ? (int)$_REQUEST['catalog_ord_type'] : -1;
    
//  Получить значения из 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;
        }
 
        // Изменение уровня элемента в БД и списке
        if ($params_ord_id != -1 && $params_ord_type != -1)
        {
            $getParamsCorder = -1;
            $getParamsCorder = GetCorderForSwap($params_ord_id, $tableName);
 
            $params_ord = $getParamsCorder;
        SwapOrder($params_ord_id, $params_ord_type, $params_ord, $getParamsCorder, $tableName);
        header("Location: function_lib.php");
        exit();;
        }
?>
теперь мне файл обработки выдает вот это Column count doesn't match value count at row 1
0
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
11.11.2011, 15:25
Цитата Сообщение от little_dita Посмотреть сообщение
PHP
1
2
'<?= $_POST['price4'] ?>',
'<?= $_POST['price4'] ?>',
2 раза price4
1
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
11.11.2011, 19:05
это
Цитата Сообщение от little_dita Посмотреть сообщение
$dbTable = 'aboniment';
нужно объявлять в файле обработчике.

это тоже в файле обработчике
Цитата Сообщение от little_dita Посмотреть сообщение
// Изменение уровня материала в списке
// Change level of letter in list
$params_ord_id = (isset($_REQUEST['catalog_ord_id'])) ? (int)$_REQUEST['catalog_ord_id'] : -1;
$params_ord_type = (isset($_REQUEST['catalog_ord_type'])) ? (int)$_REQUEST['catalog_ord_type'] : -1;
вот это ты выызываешь и в файле с формой и в файле обработчике
Цитата Сообщение от little_dita Посмотреть сообщение
include "function_lib.php";
Не совсем хорошо, замени хотя бы include на include_once. И проверь пути подключения
что это????
Цитата Сообщение от little_dita Посмотреть сообщение
'$cordPar'
еще и вне тегов <?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
$query = "INSERT INTO aboniment 
  (
`cat`,
`age`,
`time`,
`days`,
`price1`,
`price2`,
`price3`,
`price4`,
`corder`
   )
VALUES
  (
'".<?= $_POST['cat'] ?>."',
'".<?= $_POST['age'] ?>."',
'".<?= $_POST['time'] ?>."',
'".<?= $_POST['days'] ?>."',
'".<?= $_POST['price1'] ?>."',
'".<?= $_POST['price2'] ?>."',
'".<?= $_POST['price3'] ?>."',
'".<?= $_POST['price4'] ?>."',
'".<?= $_POST['price4'] ?>."',
$cordPar
)";
Перепишем файл обработки так
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
<?php
  
  Error_Reporting(E_ALL & ~E_NOTICE); 
 
  include "../config.php";
  include "function_lib.php";
 
  if(empty($_POST['cat'])) links("Отсутствует категория");
  if(empty($_POST['age'])) links("Не указан возраст ");
 
$query = "INSERT INTO aboniment 
  (
`cat`,
`age`,
`time`,
`days`,
`price1`,
`price2`,
`price3`,
`price4`,
`corder`
   )
VALUES
  (
'".<?= $_POST['cat'] ?>."',
'".<?= $_POST['age'] ?>."',
'".<?= $_POST['time'] ?>."',
'".<?= $_POST['days'] ?>."',
'".<?= $_POST['price1'] ?>."',
'".<?= $_POST['price2'] ?>."',
'".<?= $_POST['price3'] ?>."',
'".<?= $_POST['price4'] ?>."',
'".<?= $_POST['price4'] ?>."',
$cordPar
)";
 
$result = mysql_query($query);
if(!$result) die ('Чет не то' . mysql_error());
 
header("Location: aboniment.php?page=".$_GET['page']); 
exit();
 
 
  function links($msg)
  {
    echo "<p>".$msg."</p>";
    echo "<p><a href=# onClick='history.back()'>Вернуться к правке</a></p>";
    echo "<p><a href=aboniment.php>Администрирование абониментов</a></p>";
    exit();
  }
?>
Если запрос будет выдавать ошибку проверь, не обрамлены ли численные типы в кавычки, если да, то убери их

Добавлено через 8 минут
не вижу в файле обработчике обрабоотки - "вверх", "вниз"
Напиши в файле обработчике
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    // * Важно, что изменение уровня материалов в списке идет до получения списка материалов
    
    // Изменение уровня материала в списке
    // Change level of letter in list
    $params_ord_id = (isset($_REQUEST['catalog_ord_id'])) ? (int)$_REQUEST['catalog_ord_id'] : -1;
    $params_ord_type = (isset($_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, $tableName);
 
        $params_ord = $getParamsCorder;
        SwapOrder($params_ord_id, $params_ord_type, $params_ord, $getParamsCorder, $tableName);
        gk_redirect($activation_file);
    }
а в файле с формой надо вывести ссылки по которым все это дело будет осуществляться
PHP
1
2
3
4
echo "
    <a href=\"имя_файла?catalog_ord_id=$id&catalog_ord_type=0\">Вверх</a>
    <a href=\"имя_файла?catalog_ord_id=$id&catalog_ord_type=1\">Вниз</a>
";
0 или 1 зависят от того в какой последовательности осуществляется вывод из БД (ASC или DESC). Я уже не помню, но проверить это не трудно, нажми "вверх", если при этом запись в списке опуститься значит 0 и 1 надо поменять местами

Добавлено через 1 минуту
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
$id
тута $id замени на свою переменную, если не совпадает

Добавлено через 3 часа 18 минут
блин у меня тоже ошибка..
в запросе убери теги пхп, т.е. <?= ?>
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
11.11.2011, 23:26  [ТС]
Love_and_Peace,
все равно 0 записывает
addform.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
<?php
  Error_Reporting(E_ALL & ~E_NOTICE); 
 
  include_once "function_lib.php";
 
  if(!defined("EDIT"))
  {
    $button = "Добавить";
    $action = "add.php";
    $cat = "";
    $age = "";
    $time = "";
    $days = "";
    $price1 = "";
    $price2 = "";
    $price3 = "";
    $price4 = "";
    $corder = "";
  }
?>
<form name=form enctype='multipart/form-data' action=<?php echo $action; ?> method=post>
<table cellpadding="0" cellspacing="6">
<tr>
  <td><p class=zag2>Категория абонемента</td>
  <td></td>
  <td><input class=input size=70 type=text name=cat value='<?php echo htmlspecialchars($cat); ?>'></td>
</tr>
<tr>
  <td><p class=zag2>Возраст</td>
  <td></td>
  <td><textarea class=input name=age rows=10 cols=60><?php echo htmlspecialchars($age); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>Время</td>
  <td></td>
  <td><textarea class=input name=time rows=10 cols=60><?php echo htmlspecialchars($time); ?></textarea></td>
</tr>
<tr>
<tr>
  <td><p class=zag2>Дни</td>
  <td></td>
  <td><textarea class=input name=days rows=10 cols=60><?php echo htmlspecialchars($days); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на1 месяц</td>
  <td></td>
  <td><textarea class=input name=price1 rows=10 cols=60><?php echo htmlspecialchars($price1); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на3 месяца</td>
  <td></td>
  <td><textarea class=input name=price2 rows=10 cols=60><?php echo htmlspecialchars($price2); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на 6 месяцев</td>
  <td></td>
  <td><textarea class=input name=price3 rows=10 cols=60><?php echo htmlspecialchars($price3); ?></textarea></td>
</tr>
<tr>
  <td><p class=zag2>на 12 месяцев</td>
  <td></td>
  <td><textarea class=input name=price4 rows=10 cols=60><?php echo htmlspecialchars($price4); ?></textarea></td>
</tr>
<tr>
  <td></td>
  <td></td>
  <td><input class=button type=submit value=<?php echo htmlspecialchars($button); ?>></td>
</tr>
<input type=hidden name=id value=<?php echo htmlspecialchars($_GET['id']); ?>>
<input type=hidden name=start value=<?php echo htmlspecialchars($_GET['start']); ?>>
</table>
</form>
<?
  echo $help;
?>
add.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
<?php
  
  Error_Reporting(E_ALL & ~E_NOTICE); 
 
  include "../config.php";
  include_once "function_lib.php";
  $dbTable = 'aboniment';
 
        // * Важно, что изменение уровня материалов в списке идет до получения списка материалов
    
        // Изменение уровня материала в списке
        // Change level of letter in list
        $params_ord_id = (isset($_REQUEST['catalog_ord_id'])) ? (int)$_REQUEST['catalog_ord_id'] : -1;
        $params_ord_type = (isset($_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, $tableName);
 
            $params_ord = $getParamsCorder;
        SwapOrder($params_ord_id, $params_ord_type, $params_ord, $getParamsCorder, $tableName);
        gk_redirect($activation_file);
        }
 
  if(empty($_POST['cat'])) links("Отсутствует категория");
  if(empty($_POST['age'])) links("Не указан возраст ");
 
$query = "INSERT INTO aboniment 
  (
`cat`,
`age`,
`time`,
`days`,
`price1`,
`price2`,
`price3`,
`price4`,
`corder`
   )
VALUES
  (
'".$_POST['cat']."',
'".$_POST['age']."',
'".$_POST['time']."',
'".$_POST['days']."',
'".$_POST['price1']."',
'".$_POST['price2']."',
'".$_POST['price3']."',
'".$_POST['price4']."',
'$cordPar'
)";
 
$result = mysql_query($query);
if(!$result) die ('Чет не то' . mysql_error());
 
header("Location: aboniment.php?page=".$_GET['page']); 
exit();
 
 
  function links($msg)
  {
    echo "<p>".$msg."</p>";
    echo "<p><a href=# onClick='history.back()'>Вернуться к правке</a></p>";
    echo "<p><a href=aboniment.php>Администрирование абониментов</a></p>";
    exit();
  }
?>
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
а в файле с формой надо вывести ссылки по которым все это дело будет осуществляться
я их в другом месте сделаю при выводе всех строк(это же возможно), у меня проста corder не записывается даже в таблицу
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
12.11.2011, 01:53
Цитата Сообщение от little_dita Посмотреть сообщение
gk_redirect($activation_file);
у тя определена переменная $activation_file ?? и ф-ии gk_redirect у тя нет.
Используй вместо нее перенаправление с поомощью header(тут перенаправление на этот же файл); exit();
ну это что касалось этого момента.

По твоему вопросу
Цитата Сообщение от little_dita Посмотреть сообщение
все равно 0 записывает
он не записывает, он по умолчанию стоит в БД.
Вижу в поле corder передаешь переменную
Цитата Сообщение от little_dita Посмотреть сообщение
'$cordPar'
1. не надо обрамлять ее кавычками, ведь тип поля в таблице integer
2. она не определена. что это за переменная? Приравняй ее ф-ии getOrder, она у тя есть
т.е.
PHP
1
$cordPar = getOrder($dbTable);
Вот так попробуй
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
12.11.2011, 04:24  [ТС]
спасибо вам огромное еще раз за помощь))
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
тута $id замени на свою переменную, если не совпадает
что это переменная в данном случаи делает?
у меня ссылки на все такие
PHP
1
"<td align=center><p><a href=del.php?start=$start&id=".$news['id']." title='Удалить'>Удалить</a></td>"
т.е в моем случаи это ".$news['id']."
правильно
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
12.11.2011, 05:11
Цитата Сообщение от little_dita Посмотреть сообщение
т.е в моем случаи это ".$news['id']."
правильно
да, похоже что так.
Получилось хоть?
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
12.11.2011, 05:34  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
да, похоже что так.
и в самом файле
function_lib.php
$id на ".$news['id']."

Добавлено через 4 минуты
если я там пишу так
PHP
1
2
3
4
5
6
7
8
//  Получить значения из corder
        function GetCorderForSwap(".$news['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,
выдает
Parse error: syntax error, unexpected '"', expecting '&' or T_VARIABLE во второй строке как раз где поменяла
0
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
12.11.2011, 13:55
Цитата Сообщение от little_dita Посмотреть сообщение
если я там пишу так
PHP
1
2
3
4
5
6
7
8
//  Получить значения из corder
        function GetCorderForSwap(".$news['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,
Весело вы функции определяете)) Нельзя при определении функции за место параметра константу ставить.
Транслятору при вызове нужно знать сколько и какие параметры принимает подпрограмма.

Добавлено через 9 минут
А если быть поточнее, то транслятору надо знать адреса в памяти куда сохранить входные параметры. Вот все переменные это можно считать адреса в памяти, записанные в более удобном для человека виде. Константы - это не переменные, это просто данные. Они на этапе трансляции просто подставляются в код и все. Собственно именно поэтому в них ничего нельзя записать, т.к. адреса в памяти они не имеют.
1
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
12.11.2011, 13:58
Цитата Сообщение от little_dita Посмотреть сообщение
и в самом файле
function_lib.php
$id на ".$news['id']."
нет конечно, это же параметр, туда межно писать что угодно (в виде переменной), но не подставлять значение.
Значение подставляйте когда вы уже выызываете ф-ю, об этом уже сказал forgergg.
Цитата Сообщение от forgergg Посмотреть сообщение
Нельзя при определении функции за место параметра константу ставить.
где там константа?
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
12.11.2011, 14:36  [ТС]
так а как мне тогда ссылку сделать которая будет увеличивать corder
если у меня все сылки на редактирования такие
PHP
1
2
3
4
"<td align=center><p><a href=del.php?start=$start&id=".$news['id']." title='Удалить'>Удалить</a></td>
              <td align=center><p><a href=editform.php?start=$start&id=".$news['id']." title='Редактировать'>Исправить</a></td>
              <td align=center><p><a href=function_lib.php?catalog_ord_id=$news&catalog_ord_type=0>вверх</a></td>
              <td align=center><p><a href=function_lib.php?catalog_ord_id=$id&catalog_ord_type=1>вниз</a></td>"
Добавлено через 9 минут
что вместо этого записать
function_lib.php?catalog_ord_id=$news&ca talog_

Добавлено через 26 минут
мне при нажатии верх или вниз ошибка файла function_lib.php
вот такая
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'site'@'localhost' (using password: NO) in /../aboniment/function_lib.php on line 75

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /../aboniment/function_lib.php on line 75

Warning: mysql_query() [function.mysql-query]: Access denied for user 'site'@'localhost' (using password: NO) in /../aboniment/function_lib.php on line 77

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /../adminka/aboniment/function_lib.php on line 77
Query failed: Access denied for user 'site'@'localhost' (using password: NO)
что она означает
0
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
12.11.2011, 14:37
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
где там константа?
".$news['id']." а это что по вашему ? Ни что иное как строковая константа. Тоже самое что написать "длвадлвда". Она не становится переменной от того, что туда подставляется значение $news['id']. В любом случае нельзя так объявлять функции.
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
12.11.2011, 14:40  [ТС]
а нашла файл конфиг не подклжчила
вот мой 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
 
include "../config.php";
$dbTable = 'aboniment';
 
// * Важно, что изменение уровня материалов в списке идет до получения списка материалов
 
    // Изменение уровня материала в списке
    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
                                ";
                        $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;
}
 
 
        // Изменение уровня материала в списке
        // Change level of letter in list
        $params_ord_id = (isset($_REQUEST['catalog_ord_id'])) ? (int)$_REQUEST['catalog_ord_id'] : -1;
        $params_ord_type = (isset($_REQUEST['catalog_ord_type'])) ? (int)$_REQUEST['catalog_ord_type'] : -1;
    
//  Получить значения из 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;
        }
 
        // Изменение уровня элемента в БД и списке
        if ($params_ord_id != -1 && $params_ord_type != -1)
        {
            $getParamsCorder = -1;
            $getParamsCorder = GetCorderForSwap($params_ord_id, $tableName);
 
            $params_ord = $getParamsCorder;
        SwapOrder($params_ord_id, $params_ord_type, $params_ord, $getParamsCorder, $tableName);
        header("Location: function_lib.php");
        exit();;
        }
?>
тепер при нажатии вверх или вниз выдает вот это
Query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = '0'' at line 1
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
12.11.2011, 14:41
Цитата Сообщение от little_dita Посмотреть сообщение
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established
что она означает
Говорит, что Вы не установили соединение с mysql сервером.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2011, 14:41
Помогаю со студенческими работами здесь

Ошибка в запросе
$query_change_slider = &quot;UPDATE `slider` SET (`title_lt` = '{$str}', 'text_lt' = '{$str}', `title_en` = '{$str}', `text_en` = '{$str}',...

Ошибка в sql запросе
Помогите разобраться в чем ошибка! Только начинаю работать с php и решил сделать небольшую запись в базу данных, но когда замутили скрипт...

Ошибка при запросе в БД
Есть ajax запрос, который должен проверять зарегистрирован ли логин. В теории все верно. Но результат таков, что php постоянно возвращает...

Ошибка в SQL запросе
Доброй ночи, помогите пожалуйста разобраться с запросом. Я создаю подготовленный запрос в бд SQLite3 собственно метод выглядит так: ...

Ошибка в запросе SQL
Здравствуйте! Есть код он занимается выборкой имени, фамилии и т.д, только тех кто состоит в друзьях, но конфликт состоит в том, что...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru