С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 99
1

Редактирование записи

25.02.2015, 18:54. Показов 4840. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите разобраться с ошибкой. Нажимаю на запись из таблицы, загружаются инпуты соответствующими значениями, но при нажатии на кнопку "Редактировать"(сохранения изменений), данные из инпутов очищаются и изменения даже не вносятся для записи..
HTML КОД ссылки на редактирование записи
HTML5
1
echo "<td><a href='/admin/edit.php?edit_id=".$ID."'class='edt'>Edit</a></td>"
HTML код кнопки редактировать
HTML5
1
<input type="submit" name="edit" value="Редактировать" />
Php код страницы edit.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(isset($_GET['edit_id'])){
    $edit_id=$_GET['edit_id'];
    db_connect();
    $query="SELECT*FROM Processors WHERE ID='".$edit_id."'";
    $result=mysql_query($query)or die(mysql_error());
    $row=mysql_fetch_assoc($result);
    db_close();
 
    if(isset($_POST['edit'])){
        
    db_connect();
    $querys='UPDATE Processors SET Price = '.$_POST['Price'].', Article = '.$_POST['Article'].' WHERE ID='.$edit_id;
    $result=mysql_query($querys)ordie("Error:".mysql_error());
 
    db_close(); 
   header("location: edit.php?edit_id=".$_GET['edit_id']);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2015, 18:54
Ответы с готовыми решениями:

редактирование записи
У меня тут странная вещь произошла: Делаю возможность редактирования справочника, т.е. нажимаешь...

Редактирование записи на PHP
Вставка записи insert into Удаление delete Как будет Редактирование записи

Изменение записи (редактирование)
Привет всем. Я столкнулся с проблемой, которая заключается в следующем: У меня есть список...

Редактирование записи в mysql
Помогите пожалуйста исправить код на сохранение редактируемой записи. На главной форме выводится...

24
Эксперт PHP
3879 / 3220 / 1350
Регистрация: 01.08.2012
Сообщений: 10,864
25.02.2015, 19:10 2
А где тег <form> с артибутами action и method?
0
11 / 11 / 8
Регистрация: 13.02.2015
Сообщений: 61
25.02.2015, 19:13 3
эммм, а нужные поля лежат внутри формы у которой прописан метод пост?
Цитата Сообщение от Hyliop Посмотреть сообщение
($querys)ordie("Erro
и кажется здесь пробелов не хватает
0
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 99
25.02.2015, 19:14  [ТС] 4
Jodah, он есть, я не написал сюда. Разве это так важно?)
HTML5
1
2
3
4
5
6
<form name="form" id="" method="post" action="<?php echo DOCROOT; ?>admin/edit.php" enctype="multipart/form-data">
 <tr><th>Цена, грн</th><td><input type="text" name = "Price" class="input" value="<?php echo $row['Price']; ?>" /></td></tr>          
 <tr><th>Артикль</th><td><input type="text" name = "Article" class="input" value="<?php echo $row['Article']; ?>" /></td></tr>
/* + там список*/
<input type="submit" name="edit" value="Редактировать" />
    </form>
Добавлено через 38 секунд
alexhit, случайно, блокнот удалил пробелы.
0
11 / 11 / 8
Регистрация: 13.02.2015
Сообщений: 61
25.02.2015, 19:19 5
Забавный момент в вашей логике.
Сперва вы проверяете есть ли id и загружаете данные из БД, после этого вносите в таблицу изменения. Т.е. сделанные изменения не отобразятся в форме.

попробуй так

PHP
1
2
3
4
5
6
7
8
9
10
11
12
if (isset($_GET['edit_id'])) {
    $edit_id=$_GET['edit_id'];
    db_connect();
    if(isset($_POST['edit'])) {
        $querys='UPDATE Processors SET Price = '.$_POST['Price'].', Article = '.$_POST['Article'].' WHERE ID='.$edit_id;
        $result=mysql_query($querys)or die("Error:".mysql_error());
    }
    $query="SELECT*FROM Processors WHERE ID='".$edit_id."'";
    $result=mysql_query($query)or die(mysql_error());
    $row=mysql_fetch_assoc($result); 
    db_close();
}
и у тебя не хватало одной закрывающейся скобки для условия
0
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 99
25.02.2015, 19:21  [ТС] 6
alexhit, подскажите как сделать, пожалуйста. Сижу очень долго и не получается, то ошибки с You have an error in your SQL syntax, то опять пустота
0
11 / 11 / 8
Регистрация: 13.02.2015
Сообщений: 61
25.02.2015, 19:26 7
в сообщении выше написал как нужно сделать, и еще совет переходите на PDO_MySQL.
mysql_* считается не безопасным и устаревшим. Вскоре его поддержку совсем исключить хотят пруф
0
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 99
25.02.2015, 19:30  [ТС] 8
alexhit, я знаю, что mysql устарел и sql инъекция сломает всю систему, но pdo нужно поучить. Что-то не работает.. вообще не обновляется данные даже.
0
Эксперт PHP
3879 / 3220 / 1350
Регистрация: 01.08.2012
Сообщений: 10,864
25.02.2015, 19:35 9
Я бы сделал так:
PHP
1
2
3
4
5
6
7
8
9
10
11
db_connect();
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    $query = "UPDATE `Processors` SET `Price` = '" . $_POST['Price'] . "', `Article` = '" . $_POST['Article'] . "' WHERE `ID` = " . (int) $edit_id;
    mysql_query($query) or die(mysql_error());
    header("location: edit.php?edit_id=" . (int) $_GET['edit_id']);
}else{
    $query = "SELECT * FROM `Processors` WHERE `ID` = " . (int) $_GET['edit_id'];
    $result = mysql_fetch_assoc(mysql_query($query)) or die(mysql_error());
}
db_close();
// Вывод HTML
0
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 99
25.02.2015, 19:40  [ТС] 10
alexhit, после нажатия на редактировать в адресной строке адрес в виде - /admin/edit.php
Нету Id, до нажатия на Редактировать ID есть

Добавлено через 4 минуты
Jodah, при клике на кнопку "Edit" с таблицы и попадания на страницу admin/edit.php?edit_id=6 значения в инпутах пустые. После нажатия на редактирование(сохранение значений), то выводится страница с ID 0.
0
Эксперт PHP
3879 / 3220 / 1350
Регистрация: 01.08.2012
Сообщений: 10,864
25.02.2015, 19:53 11
Hyliop, упс, замените в моём примере $result на $row.
Чем отличаются кнопки "Edit" и редактирование?
Кстати, форму я бы вынес за пределы таблицы, т.е. <form><table>...</table></form>. Помнится, когда делал форму между строками, возникали проблемы.
0
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 99
25.02.2015, 20:08  [ТС] 12
Jodah, кнопка Edit находится на странице index.php, в таблице.. То есть, у каждой записи сбоку есть кнопка "Edit". Когда мы нажимаем на нее, то нас отправляет на страницу edit.php, где отображаются данные для записи. По нажатию на "Редактирование" сохраняются изменения. Грубо говоря, то кнопка "редактирование" равносильна "сохранить изменения"

Добавлено через 4 минуты
Jodah, изменил. Вроде в инпутах всё работает. Но вот при нажатии на "редактировать", Url таков:
admin/edit.php?edit_id=0.
0 - это из-за того, что стоит (int), если убрать, то будет после =(равно) пустота. Не знаю почему + кроме этого всё же изменения не сохраняются.

Добавлено через 4 минуты
Я вынес форму так:
HTML5
1
2
3
4
<table></table>
 <form name="form" id="" method="post" action="<?php echo DOCROOT; ?>admin/edit.php" enctype="multipart/form-data">
<input type="submit" name="edit" value="Редактировать" />
</form>
, но ничего не изменилось)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.02.2015, 20:20 13
Цитата Сообщение от Hyliop Посмотреть сообщение
0 - это из-за того, что стоит (int), если убрать, то будет после =(равно) пустота
Так правильно. В action формы нет никакого edit_id.
PHP/HTML
1
2
3
<form name="form" method="post"
  action="<?php echo DOCROOT; ?>admin/edit.php<?php echo isset($_GET['edit_id']) ? (int) $_GET['edit_id'] : ''; ?>"
  enctype="multipart/form-data">
Включите отображение ошибок, чтобы видеть подобную мелочевку.
PHP
1
2
error_reporting(-1);
ini_set('display_errors', 1);
0
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 99
25.02.2015, 20:28  [ТС] 14
KOPOJI, к сожалению, выводит такой вид: /admin/edit.php6
Я добавлял после admin/edit.php? и ничего. Выводило тогда 0
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.02.2015, 20:33 15
Забыл добавить GET
PHP/HTML
1
2
3
<form name="form" method="post"
  action="<?php echo DOCROOT; ?>admin/edit.php<?php echo isset($_GET['edit_id']) ? '?edit_id=' . intval($_GET['edit_id']) : ''; ?>"
  enctype="multipart/form-data">
0
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 99
25.02.2015, 20:44  [ТС] 16
KOPOJI,
Notice: Undefined variable: edit_id in admin\edit.php on line 19
Warning: Cannot modify header information - headers already sent by (output started at admin\edit.php:19)
Видимо это вот эта строка
PHP
1
2
$query = "UPDATE `Processors` SET `Price` = '" . $_POST['Price'] . "', `Article` = '" . $_POST['Article'] . "' WHERE `ID` = " . (int) $edit_id;
    mysql_query($query) or die(mysql_error());
И ещё после этого кода не работает value="<?php echo $row['Price']; ?>" и тому подобное.
Правда это после включения отображения ошибок.
Кнопка работает, но вот новые значения не применяются.. После нажатия обновляется страница и возвращаются значения, которые были до редактирования
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.02.2015, 20:52 17
Цитата Сообщение от Hyliop Посмотреть сообщение
$edit_id
$_GET['edit_id'].

Добавлено через 51 секунду
либо же выше добавить
PHP
1
$edit_id = isset($_GET['edit_id']) ? (int) $_GET['edit_id'] : 0;
0
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 99
25.02.2015, 20:57  [ТС] 18
KOPOJI, что-то всё равно не сохраняется ничего.
Пишет -
Notice: Undefined index: Price in admin\edit.php on line 21
Notice: Undefined index: Article in admin\edit.php on line 21
Вот на это
'.$_POST['Price'].', Article = '.$_POST['Article'].'
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.02.2015, 21:25 19
Ну значит нет этих данных. Дебажьте.
PHP
1
var_dump($_POST);
0
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 99
25.02.2015, 21:32  [ТС] 20
KOPOJI, Пишет NULL. Написал var_dump($_POST['Price']);
В итоге, в полях ['Price'] и ['Acticle'] всё стало по 0.
0
25.02.2015, 21:32
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.02.2015, 21:32
Помогаю со студенческими работами здесь

Редактирование выбранной записи
Уважаемы , помогите решить проблему. Есть страничка на которую выводятся записи из тыблицы. на...

Редактирование записи из БД с помощью CKEditor
Доброе время суток. Перепробовала уже кучу всего. Либо просто не понимаю, либо... Очень нужна...

Редактирование записи в бд. PHP + MySQLi
Добрый вечер. Не могу решить проблему. Есть вывод данных из таблицы, необходимо сделать...

Редактирование записи
Приветствую. Такая проблема. Нужно сделать редактирование записей в таблице. Запись...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Администрирован­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru