Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: функция UPDATE что-то не так

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Не выходит вытянуть в форму все данные строки
DonQuijote
Отправлено: 30 Июля, 2015 - 21:45:06
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Подскажите что не так. Не вытягиваются данные из БД в форму.
view_news.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if ($result = $mysqli->query("SELECT * FROM news")) {
  4.         echo '<table width="450" border="1" cellspacing="0" cellpadding="0">';
  5. while($row = $result->fetch_assoc()) {
  6.         echo '<tr>';
  7.         echo '<td>'.$row['id'].'</td>';
  8.         echo '<td>'.$row['title'].'</td>';
  9.         echo '<td>'.$row['small_news'].'</td>';
  10.         echo '<td>'.$row['full_news'].'</td>';
  11.         echo '<td>'.$row['date_pub'].'</td>';
  12.         echo '<a href=editor_news_form.php?id_new='.$row['id'].'> Исправить </a><br></td>';
  13.         echo '</tr>';
  14.     }
  15.         $result->close();
  16.         echo '</table>';
  17. }
  18. /* Закрываем соединение */
  19. $mysqli->close();
  20. ?>
  21.  


editor_news_form.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.   // Осуществляем соединение с базой данных
  4.   require_once("db.php");
  5.   $id = $_POST['id'];
  6.   $titlepage = "Редактирование новостей";
  7.   $button = "Исправить";
  8.   $action = "editor_news.php";
  9.   $query = "SELECT * FROM news WHERE id='".$_POST['id']."'";
  10.   $text = $mysqli->query($query);
  11.   if (!$text) echo "Ошибка при исправлении новости";
  12.   $textn = mysqli_fetch_array($mysqli->query($query));
  13.   $id = $textn['id'];
  14.   $title = $textn['title'];
  15.   $small_news = $textn['small_news'];
  16.   $full_news = $textn['full_news'];
  17. ?>
  18. <form action="<?PHP $action; ?>" method="post" enctype="multipart/form-data">
  19.     Заголовок:<br><input name="title" type="text" value="<?PHP $title; ?>"><br>
  20.     Короткая новость:<br><textarea name="small_news" cols="100" rows="5"><?PHP $small_news; ?></textarea><br>
  21.     Полная новость:<br><textarea name="full_news" cols="100" rows="10"><?PHP $full_news; ?></textarea><br>
  22.     <input type="hidden" name="id" value="<?PHP $id; ?>">
  23.     <input type="submit" value="<?PHP $button; ?>">
  24. </form>


editor_news.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Осуществляем соединение с базой данных
  3. require_once("db.php");
  4.  
  5. $query = "UPDATE news SET title = '$title', small_news = '$small_news', full_news = '$full_news' WHERE id = '$id'";
  6. if ($mysqli->query($query)){
  7.         echo '<h2>Новость отредактирована</h2>';
  8. }
  9. else echo 'Не удалось отредактировать новость'.$mysqli->connect_error;
  10. ?>


что-то не дописал, или неправильно написал, подскажите пожалуйста
 
 Top
DlTA
Отправлено: 30 Июля, 2015 - 22:41:15
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




включите вывод ошибок, и проверьте наличие в базе соответствующих записей
 
 Top
broshurkaplus
Отправлено: 30 Июля, 2015 - 22:47:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




в файле editor_news_form.php вы делатете mysqli_fetch_array что изначально предполагает цикл while.
делайте fetch_assoc - тут при выборе одной запись, а у вас она одна тк id я полагаю автоинкремент, нет нужды в цикле.
проверьте.
 
 Top
DonQuijote
Отправлено: 31 Июля, 2015 - 07:26:49
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




broshurkaplus пишет:
в файле editor_news_form.php вы делатете mysqli_fetch_array что изначально предполагает цикл while.
делайте fetch_assoc - тут при выборе одной запись, а у вас она одна тк id я полагаю автоинкремент, нет нужды в цикле.
проверьте.


Что-то ничего не выходит (
 
 Top
andrewkard
Отправлено: 31 Июля, 2015 - 10:17:26
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




DonQuijote
А что не так? Что-то вообще выводит? Попробуйте вывести запрос и выполнить его в phpMyAdmin:
PHP:
скопировать код в буфер обмена
  1.  
  2. // Осуществляем соединение с базой данных
  3. require_once("db.php");
  4.  
  5. $query = "UPDATE news SET title = '$title', small_news = '$small_news', full_news = '$full_news' WHERE id = '$id'";
  6. echo $query;
  7.  
  8.  
 
 Top
DonQuijote
Отправлено: 31 Июля, 2015 - 11:18:59
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Я думаю что проблема вообще в файле editor_news_form.php.
Так как именно в его форму не выгружаются данные из бд для корректировки статьи
 
 Top
Tyoma5891
Отправлено: 31 Июля, 2015 - 11:31:42
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)





а разве так будет выводится вообще что-то?

по-моему так или краткая <?PHP =$title ?>
 
 Top
Sail
Отправлено: 31 Июля, 2015 - 11:32:31
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




DonQuijote, будьте внимательней.
Посмотрите на 12-ю строчку view_news и 5-ю editor_news_form.
Ну и значение атрибута href хорошо-бы в кавычки какие-нить заключить...
 
 Top
andrewkard
Отправлено: 31 Июля, 2015 - 11:39:16
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




DonQuijote
Проверьте что у Вас будет в переменной $id в пятой строке, выведите запрос: echo $query и проверьте его в phpMyAdmin.
В 12 строке Вы опять делает запрос, перепишите наподобие:
$row = $result->fetch_array(MYSQLI_ASSOC);
(Добавление)
Ну вот, скорее всего, ошибка в том, что указал Tyoma5891
 
 Top
Tyoma5891
Отправлено: 31 Июля, 2015 - 11:56:57
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




но 5-я строка файла editor_news_form.php это конечно шедевр, после которого вообще в корне ничего не должно выводится вообще не откуда)
замените эту строчку на
PHP:
скопировать код в буфер обмена
  1. $id = $mysqli->real_escape_string($_GET['id_new']);
 
 Top
Sail
Отправлено: 31 Июля, 2015 - 12:01:46
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




и 9-ю из editor_news_form - до кучи Улыбка
 
 Top
DonQuijote
Отправлено: 31 Июля, 2015 - 15:21:26
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   // Осуществляем соединение с базой данных
  3.   require_once("db.php");
  4.   $id = $mysqli->real_escape_string($_GET['id']);
  5.   $titlepage = "Редактирование новостей";
  6.   $button = "Исправить";
  7.   $action = "editor_news.php";
  8.   $query = "SELECT * FROM news WHERE id='$id'";
  9.   $text = $mysqli->query($query);
  10.   if (!$text) echo "Ошибка при исправлении новости";
  11.   $row = $result->fetch_array($mysqli->assoc);
  12.   $id = $row['id'];
  13.   $title = $row['title'];
  14.   $small_news = $row['small_news'];
  15.   $full_news = $row['full_news'];
  16. ?>
  17. <form action="<?PHP echo $action; ?>" method="post" enctype="multipart/form-data">
  18.     Заголовок:<br><input name="title" type="text" value="<?PHP echo $title; ?>"><br>
  19.     Короткая новость:<br><textarea name="small_news" cols="100" rows="5"><?PHP echo $small_news; ?></textarea><br>
  20.     Полная новость:<br><textarea name="full_news" cols="100" rows="10"><?PHP echo $full_news; ?></textarea><br>
  21.     <input type="hidden" name="id" value="<?PHP echo $id; ?>">
  22.     <input type="submit" value="<?PHP echo $button; ?>">
  23. </form>


сейчас выдает
Fatal error: Call to a member function fetch_array() on a non-object in Z:\home\***\www\123\***\editor_news_form.php on line 12
 
 Top
Sail
Отправлено: 31 Июля, 2015 - 15:34:19
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




DonQuijote, каким волшебным образом сделали из "мухи" ($text) "слона" ($result)?
 
 Top
DonQuijote
Отправлено: 31 Июля, 2015 - 15:45:21
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Sail пишет:
DonQuijote, каким волшебным образом сделали из "мухи" ($text) "слона" ($result)?


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   // Осуществляем соединение с базой данных
  3.   require_once("db.php");
  4.   $id = $mysqli->real_escape_string($_GET['id']);
  5.   $titlepage = "Редактирование новостей";
  6.   $button = "Исправить";
  7.   $action = "editor_news.php";
  8.   $query = "SELECT * FROM news WHERE id='$id'";
  9.   $text = $mysqli->query($query);
  10.   if (!$text) echo "Ошибка при исправлении новости";
  11.   $row = $text->fetch_array(MYSQLI_ASSOC);
  12.   $id = $row['id'];
  13.   $title = $row['title'];
  14.   $small_news = $row['small_news'];
  15.   $full_news = $row['full_news'];
  16. ?>
  17. <form action="<?PHP echo $action; ?>" method="post" enctype="multipart/form-data">
  18.     Заголовок:<br><input name="title" type="text" value="<?PHP echo $title; ?>"><br>
  19.     Короткая новость:<br><textarea name="small_news" cols="100" rows="5"><?PHP echo $small_news; ?></textarea><br>
  20.     Полная новость:<br><textarea name="full_news" cols="100" rows="10"><?PHP echo $full_news; ?></textarea><br>
  21.     <input type="hidden" name="id" value="<?PHP echo $id; ?>">
  22.     <input type="submit" value="<?PHP echo $button; ?>">
  23. </form>


Сейчас робит, но исправления не вносит в бд
 
 Top
Sail
Отправлено: 31 Июля, 2015 - 15:49:18
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




DonQuijote, ещё раз присмотритесь к 12-й строке файла view_news.
Спойлер (Отобразить)

(Добавление)
И посмотрите исходный код страницы, сформированной editor_news_form.php
Присмотритесь к описанию формы... атрибуту action, например...
Ну и другие несуразности, быть может, найдутся...
(Добавление)
И в editor_news откуда, возьмутся значения $id и прочие?
Их ведь тоже надо брать из $_POST и обрабатывать...
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB