Не записывается изменение записи UPDATE
Подскажите в чём проблема? Не работает редактирование записи....
<script type="text/javascript" src=".\js\hide.js"></script> <?php // Количество новостей на странице $on_page = 10; // Получаем количество записей таблицы news $query = "SELECT COUNT(*) FROM gornaz_reg"; $res = mysql_query($query); $count_records = mysql_fetch_row($res); $count_records = $count_records[0]; // Получаем количество страниц // Делим количество записей на количество новостей на странице // и округляем в большую сторону $num_pages = ceil($count_records / $on_page); // Текущая страница из GET-параметра page // Если параметр не определен, то текущая страница равна 1 $current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1; // Если текущая страница меньше единицы, то страница равна 1 if ($current_page < 1) { $current_page = 1; } // Если текущая страница больше общего количества страница, то // текущая страница равна количеству страниц elseif ($current_page > $num_pages) { $current_page = $num_pages; } // Начать получение данных от числа (текущая страница - 1) * количество записей на странице $start_from = ($current_page - 1) * $on_page; if (isset($_GET['red_id'])) { //Проверяем, передана ли переменная на редактирования if (isset($_POST['role'])) { //Если новое имя предано, то обновляем и имя и цену $sql = mysql_query('UPDATE gornaz_reg SET ' .'`role`= "'.$_POST['role'].'",' .'WHERE `ID` = '.$_GET['red_id']); } } // Формат оператора LIMIT <ЗАПИСЬ ОТ>, <КОЛИЧЕСТВО ЗАПИСЕЙ> $query = "SELECT `id`, `login`, `status`, `role` FROM gornaz_reg ORDER BY `status` DESC LIMIT $start_from, $on_page"; $res = mysql_query($query); if (isset($_GET['del_id'])) { //проверяем, есть ли переменная $sql = mysql_query('DELETE FROM gornaz_reg WHERE `ID` = '.$_GET['del_id']); //удаляем строку из таблицы } // Вывод результатов echo '<table border="0"><tr><th>ID</th><th>Логин</th><th>Активация почты</th><th>Права пользователя</th></tr>'; while ($row = mysql_fetch_assoc($res)) { echo '<tr>'; echo '<td>'.$row['id'].'</td>'; echo '<td style="width:40%;">'.$row['login'].'</td>'; if ($row['status']==1) {echo "<td>активирована</td>";} elseif ($row['status']==0) {echo "<td>нет активации</td>";} if ($row['role']==3) {echo "<td name=".$row['id'].">Администртор</td>";} elseif ($row['role']==2) {echo "<td>Модератор</td>";} elseif ($row['role']==1) {echo "<td>Пользователь</td>";} echo '<td><a href="?red_id='.$row['id'].'">Изменить</a></td>'; echo '<td><a href="?del_id='.$row['id'].'">Удалить</a></td></tr>'; echo "<br></td></tr>"; } echo '</table>'; if (isset($_GET['red_id'])) { //Если передана переменная на редактирование //Достаем запсись из БД $sql = mysql_query("SELECT `id`, `role` FROM `gornaz_reg` WHERE `id`=".$_GET['red_id'], $db_connect); //запрос к БД $result = mysql_fetch_array($sql); //получение самой записи ?> <table> <form action="" method="post"> <tr> <td>Наименование:</td> <td><input type="text" name="role" value="<?php echo ($result['role']); ?>"></td> </tr> <tr> <td colspan="2"><input type="submit" value="OK"></td> </tr> </form> </table> <?php } ?> <?php // Вывод списка страниц echo '<p>'; for ($page = 1; $page <= $num_pages; $page++) { if ($page == $current_page) { echo '<strong>'.$page.'</strong> '; } else { echo '<a href="?page='.$page.'">'.$page.'</a> '; } } echo '</p>'; ?> |
Причина не в SQL, а в ошибке сроки запроса - с чего вдруг в нем запятая после единственного параметра обновления?
WHERE `id`=".$_GET['red_id'] - это есть грубейшая ошибка. Прежде чем писать запросы к базе да еще к таблице пользователей, которая может хранить их конфиденциальные данные, и за неразглашение которых вы несете ответственность перед Законом, изучить обязательно этот раздел. Выставляя код, форматируйте его, иначе никто его смотреть не станет. |
Часовой пояс GMT +3, время: 10:58. |