Перейти к содержимому



Простой вопрос: почему не работает UPDATE?

#11 hnerd

hnerd
    Topic Starter
  • Пользователь
  • 284 сообщений
  • Репутация: 18
0

Отправлено 18 Август 2014 - 19:13

Сработало, когда я сделала так: создала еще один input, куда вставила id, а потом просто методом пост забрала ее оттуда и вставила в UPDATE. Но так ведь тоже не совсем правильно, хоть и работает, как Вы думаете, что еще можно сделать. Пробовала даже сохранить id с помощью сессий и констант - не сохраняется. А вот, код, который получился у меня!

<?php
require_once('dbconfig.php');

$id = $_GET['id'];

//Делаем выборку
$res = mysql_query("SELECT * FROM articles WHERE id_article='$id'");
if(!$res) die ('Ошибка базы данных ' . mysql_error());
$row = mysql_fetch_assoc($res);


?>
<h1>Обновление записи!</h1>

<form method="post" action="update.php">
	Номер статьи:<br/>
	<input type="text" name="id" value="<?php echo $row['id_article']; ?>" /><br/>
	<input type="text" name="title" value="<?php echo $row['title']; ?>" /><br/>
	<textarea name="content"><?php echo $row['content']; ?></textarea><br/>
	<input type="submit" name="change" value="Изменить" />
</form>

<br/><a href="index.php">Главная</a>

<?php

//Делаем обновление записей

if(isset($_POST['change']))
{
	$title = $_POST['title'];
	$content = $_POST['content'];
	$id = $_POST['id'];
	$query = "UPDATE articles SET title='$title', content='$content' WHERE id_article='$id'";
	echo $id;
	mysql_query($query);
}
?>

  • 0

#12 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 18 Август 2014 - 19:22


Как вы думаете, как можно изменить код, чтобы id было видно!

Легко и просто.

Код, который отвечает за изменение записи

if(isset($_POST['change'])){
    ...
}

Размести сразу после строки, где у тебя инициализируется $id

Потому что этот код все равно будет отрабатываться только после отправки формы.

Тогда у тебя айди будет точно видеть.


Я бы тебе еще рекомендавал бы отказаться от вставок пхп кода в хтмл код.

Потому что это не очень красиво, не совсем удобно  и когда дойдет дело до заголовков, то тебе придется все равно отказаться от этого. Или все равно когда-то познакомишься с шаблонизатором.

Поэтому в самом начале страницы пиши весь пхп, который нужен, а то, что надо вывести на страницу добавляй в переменную и потом выводи эту переменную.

echo $html;

Сообщение отредактировал fedornabilkin: 18 Август 2014 - 19:22

  • 1
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#13 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 18 Август 2014 - 19:47

Это вполне нормальный приём ID передавать POST методом, но его выводить не обязательно, можно делать так 

<input name="id" type="hidden" value="<?= $row['id_article']; ?>"><br />

  • 1

#14 vovanpadavan

vovanpadavan
  • Пользователь
  • 3 сообщений
  • Репутация: 0

Отправлено 24 Апрель 2015 - 20:10

Напишите весь запрос в phpmyadmin к базе данных... увидите может ошибка в переменных

поставьте после echo mysql_error();


  • 0


Оформление форума – IPBSkins.ru