<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Добавление нового узла связи</title>
</head>
<body style="background-color:#4c5866">
<img src="img/logo.gif" width="300" height="100">
<table>
<tr>
<td align="center">
<?php
if (isset($_POST['ud_name']))
{
$ud_name = $_POST['ud_name'];
}
if (isset($_POST['ud_address']))
{
$ud_address = $_POST['ud_address'];
}
if (isset($_POST['ud_note']))
{
$ud_note = $_POST['ud_note'];
}
$db = mysql_connect("localhost","aleks","12345");
mysql_select_db("work",$db);
mysql_query("SET NAMES cp1251");
mysql_query("SET CHARACTER SET cp1251");
mysql_query("SET character_set_client = cp1251");
mysql_query("SET character_set_connection = cp1251");
mysql_query("SET character_set_results = cp1251");
$result = mysql_query ("UPDATE ud SET ud_address='$ud_address', ud_note='$ud_note' WHERE ud_name='$ud_name'");
echo "$ud_name";
echo "$ud_address";
echo "$ud_note";
?>
</td>
</tr>
<tr>
<td align="left">
<form name="form" action="work_Greeting.php" method="POST" enctype="application/x-www-form-urlencoded">
<p style="text-align: left"><button>Вернуться на главную страницу</button>
</form>
<form>
<INPUT TYPE="button" VALUE=" Заполнить снова " ONCLICK="history.back(-1)">
</form>
</td>
</tr>
</table>
</body>
</html>
Я только учусь...
Спустя 32 минуты, 58 секунд (14.03.2011 - 17:23) Trianon написал(а):
после любой из этих функций
mysql_connect
mysql_select_db
mysql_query
следует проверять результат на успех выполнения.
пример:
далее. Из этих вот запросов
mysql_query("SET NAMES cp1251");
mysql_query("SET CHARACTER SET cp1251");
mysql_query("SET character_set_client = cp1251");
mysql_query("SET character_set_connection = cp1251");
mysql_query("SET character_set_results = cp1251");
нужен лишь верхний.
mysql_connect
mysql_select_db
mysql_query
следует проверять результат на успех выполнения.
пример:
$db = mysql_connect("localhost","aleks","12345")
or die("Error on mysql connect<br>". mysql_error());
далее. Из этих вот запросов
mysql_query("SET NAMES cp1251");
mysql_query("SET CHARACTER SET cp1251");
mysql_query("SET character_set_client = cp1251");
mysql_query("SET character_set_connection = cp1251");
mysql_query("SET character_set_results = cp1251");
нужен лишь верхний.
Спустя 8 минут, 26 секунд (14.03.2011 - 17:31) Зодчий написал(а):
После коннекта с БД ошбки нет.
После изменения у меня написано
if ($result == 'true')
{
echo "изменено!";
}
else
{
echo "Ошибка!!!";
}
Выдает всегда изменено.
После изменения у меня написано
if ($result == 'true')
{
echo "изменено!";
}
else
{
echo "Ошибка!!!";
}
Выдает всегда изменено.
Спустя 2 минуты, 21 секунда (14.03.2011 - 17:33) Зодчий написал(а):
После коннекта с БД ошбки нет.
После изменения у меня написано
if ($result == 'true')
{
echo "изменено!";
}
else
{
echo "Ошибка!!!";
}
Выдает ошибка.
После изменения у меня написано
if ($result == 'true')
{
echo "изменено!";
}
else
{
echo "Ошибка!!!";
}
Выдает ошибка.
Спустя 1 минута, 37 секунд (14.03.2011 - 17:35) imbalance_hero написал(а):
Зодчий
Если теперь ошибки не будет, значит изменения сработали!
$result = mysql_query ("UPDATE `ud` SET `ud_address`='".$ud_address."', `ud_note`='".$ud_note."' WHERE `ud_name`='".$ud_name."'") or die(mysql_error());
Если теперь ошибки не будет, значит изменения сработали!
Спустя 2 минуты, 46 секунд (14.03.2011 - 17:38) Зодчий написал(а):
Цитата (imbalance_hero @ 14.03.2011 - 14:35) |
Зодчий Если теперь ошибки не будет, значит изменения сработали! |
Написал "изменено".Но в БД результата нет.
Спустя 2 минуты, 34 секунды (14.03.2011 - 17:40) Trianon написал(а):
во первых $result никогда не вернет 'true'
во вторых, true означает вовсе не то, что поле изменено,
а лишь то, что запрос принят и исполнен.
Корректный запрос вполне себе может
-изменить значения каких-то полей
-присвоить полям значения, которые в них и так уже были.
- не найти строк, удовлетворяющих условию WHERE
Во всех этих ситуациях запрос вернет true
во вторых, true означает вовсе не то, что поле изменено,
а лишь то, что запрос принят и исполнен.
Корректный запрос вполне себе может
-изменить значения каких-то полей
-присвоить полям значения, которые в них и так уже были.
- не найти строк, удовлетворяющих условию WHERE
Во всех этих ситуациях запрос вернет true
Спустя 1 минута, 11 секунд (14.03.2011 - 17:42) imbalance_hero написал(а):
Зодчий
Какие изменения будут? Скорее всего данные ты не передаёшь.
сделай перед этим
Потом сам запрос:
Какие изменения будут? Скорее всего данные ты не передаёшь.
сделай перед этим
echo '<pre>';
print_r($_POST);
Потом сам запрос:
$result = mysql_query ("UPDATE `ud` SET `ud_address`='".$_POST['ud_address']."', `ud_note`='".$_POST['ud_note']."' WHERE `ud_name`='".$_POST['ud_name']."'") or die(mysql_error());
Спустя 5 минут, 17 секунд (14.03.2011 - 17:47) Зодчий написал(а):
imbalance_hero
Array
(
[ud_address] => Адрес
[ud_note] => тест
[submit] => Изменить
)
Адрестест
Эти поля я ввел в форме.
Аналогично сработали
echo "$ud_name";
echo "$ud_address";
echo "$ud_note"; прописанные у меня.
Array
(
[ud_address] => Адрес
[ud_note] => тест
[submit] => Изменить
)
Адрестест
Эти поля я ввел в форме.
Аналогично сработали
echo "$ud_name";
echo "$ud_address";
echo "$ud_note"; прописанные у меня.
Спустя 4 минуты, 26 секунд (14.03.2011 - 17:51) Trianon написал(а):
а в таблице какие строки есть?
Спустя 34 секунды (14.03.2011 - 17:52) Зодчий написал(а):
может проблема раньше.Выкладываю все 3 файла
Суть.В первом-выбираем из списка.во втором-вносим данные.Третий собственно само изменение
work_update.php
work_update_ud_script.php
work_update_ud_script_2.php
Суть.В первом-выбираем из списка.во втором-вносим данные.Третий собственно само изменение
work_update.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Изменение информации</title>
</head>
<body style="background-color:#4c5866">
<table width="100%">
<tr>
<td align=center> Выберите</td>
</tr>
</table>
<form action="work_update_ud_script.php" name="update" method="POST">
<table>
<tr align="left">
<td><?php
$db = mysql_connect("localhost","aleks","12345");
mysql_select_db("work",$db);
mysql_query("SET NAMES cp1251");
mysql_query("SET CHARACTER SET cp1251");
mysql_query("SET character_set_client = cp1251");
mysql_query("SET character_set_connection = cp1251");
mysql_query("SET character_set_results = cp1251");
$r = mysql_query("SELECT `ud_name` FROM `ud` WHERE 1") or die(mysql_error());
for ($data=array();$row=mysql_fetch_assoc($r);$data[]=$row);
?>
<select name="ud_name">
<?php foreach ($data as $region) {?>
<option value="<?=htmlspecialchars($region['ud_name'])?>"><?=htmlspecialchars($region['ud_name'])?></option>
<?}?>
</select>
</td>
</tr>
<tr align="center"><td><p><input name="submit" type="submit" value="Выбрать"></td></tr>
</table>
</form>
</body>
</html>
work_update_ud_script.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Изменение информации об Узле</title>
</head>
<body style="background-color:#4c5866">
<table width="100%">
<tr>
<td align=center> Выберите какой Узел Вы хотите изменить</td>
</tr>
</table>
<form name="old" method="POST">
<tr><td>Текущее имя узла:</td>
<td><?php
if (isset($_POST['ud_name']))
{
$ud_name = $_POST['ud_name'];
}
echo "$ud_name<br>";
?>
</td></tr>
<tr><td>Текущий адрес:</td>
<td><?php
$db = mysql_connect("localhost","aleks","12345");
mysql_select_db("work",$db);
mysql_query("SET NAMES cp1251");
mysql_query("SET CHARACTER SET cp1251");
mysql_query("SET character_set_client = cp1251");
mysql_query("SET character_set_connection = cp1251");
mysql_query("SET character_set_results = cp1251");
$query = "SELECT `ud_address` FROM ud WHERE `ud_name`='$ud_name'";
$result = mysql_query($query);
while ($r = mysql_fetch_array($result))
{
echo $r['ud_address']."<br />";
}
?></td></tr>
</form>
<form action="work_update_ud_script_2.php" method="post" name="form">
<p>Измените адрес узла:<br><input name="ud_address" type="text" size="50" maxlength="70"></p>
<p>Можете изменит доп.данные:<br><input name="ud_note" type="text" size="100" maxlength="70"></p>
<p><input name="submit" type="submit" value="Изменить">
</body>
</html>
work_update_ud_script_2.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Добавление нового узла</title>
</head>
<body style="background-color:#4c5866">
<img src="img/logo.gif" width="300" height="100">
<table>
<tr>
<td align="center">
<?php
/*if(!empty($_POST['ud_name']) && !empty($_POST['ud_address']))
{ */
if (isset($_POST['ud_name']))
{
$ud_name = $_POST['ud_name'];
}
if (isset($_POST['ud_address']))
{
$ud_address = $_POST['ud_address'];
}
if (isset($_POST['ud_note']))
{
$ud_note = $_POST['ud_note'];
}
$db = mysql_connect("localhost","aleks","12345")
or die("Error on mysql connect<br>". mysql_error());
mysql_select_db("work",$db);
mysql_query("SET NAMES cp1251");
mysql_query("SET CHARACTER SET cp1251");
mysql_query("SET character_set_client = cp1251");
mysql_query("SET character_set_connection = cp1251");
mysql_query("SET character_set_results = cp1251");
echo '<pre>';
print_r($_POST);
$result = mysql_query ("UPDATE `ud` SET `ud_address`='".$_POST['ud_address']."', `ud_note`='".$_POST['ud_note']."' WHERE `ud_name`='".$_POST['ud_name']."'") or die(mysql_error());
echo "$ud_name";
echo "$ud_address";
echo "$ud_note";
?>
</td>
</tr>
<tr>
<td align="left">
<form name="form" action="work_Greeting.php" method="POST" enctype="application/x-www-form-urlencoded">
<p style="text-align: left"><button>Вернуться на главную страницу</button>
</form>
<form>
<INPUT TYPE="button" VALUE=" Заполнить снова " ONCLICK="history.back(-1)">
</form>
</td>
</tr>
</table>
</body>
</html>
Спустя 1 минута, 36 секунд (14.03.2011 - 17:54) Зодчий написал(а):
Trianon
ud_id------ud_name----------ud_address------ud_note
49----------Узел №1--------------Адрес 1
47----------Тест №2--------------Адрес 2
48----------Тест №3--------------Адрес 3
ud_id------ud_name----------ud_address------ud_note
49----------Узел №1--------------Адрес 1
47----------Тест №2--------------Адрес 2
48----------Тест №3--------------Адрес 3
Спустя 13 минут, 18 секунд (14.03.2011 - 18:07) Trianon написал(а):
попробуйте вывести через echo текст запроса перед исполнением.
PS. и как бы, наверное, стоит оформлять код?
Неудобно же читать.
PS. и как бы, наверное, стоит оформлять код?
Неудобно же читать.
Спустя 25 минут, 24 секунды (14.03.2011 - 18:32) imbalance_hero написал(а):
Array
(
[ud_address] => Адрес
[ud_note] => тест
[submit] => Изменить
)
if (isset($_POST['ud_name']))
{
$ud_name = $_POST['ud_name'];
}
Где?
Спустя 25 минут, 5 секунд (14.03.2011 - 18:57) Trianon написал(а):
imbalance_hero
>Где?
в первом посте автора.
Не сбивайте его с пути, он и без Вас собъется.
>Где?
в первом посте автора.
Не сбивайте его с пути, он и без Вас собъется.
Спустя 1 час, 11 минут, 20 секунд (14.03.2011 - 20:09) imbalance_hero написал(а):
Зодчий
$_POST из страницы в страницу не передаётся. Чтобы передать, значение помещай во второй странице в форму:
$_POST из страницы в страницу не передаётся. Чтобы передать, значение помещай во второй странице в форму:
<input type="hidden" name="ud_name" value="<?php echo $_POST['ud_name']; ?>" />
Спустя 13 часов, 10 минут, 50 секунд (15.03.2011 - 09:19) Зодчий написал(а):
Как не передается?
Вот это берет из $_POST
А вот это выводит.
Вывод значений есть,значит, данные из формы до страницы дошли.
Вот это берет из $_POST
if (isset($_POST['ud_name']))
{
$ud_name = $_POST['ud_name'];
}
if (isset($_POST['ud_address']))
{
$ud_address = $_POST['ud_address'];
}
if (isset($_POST['ud_note']))
{
$ud_note = $_POST['ud_note'];
}
А вот это выводит.
echo "$ud_name";
echo "$ud_address";
echo "$ud_note";
Вывод значений есть,значит, данные из формы до страницы дошли.
Спустя 16 минут, 52 секунды (15.03.2011 - 09:36) imbalance_hero написал(а):
Зодчий
из первой страницы на вторую перешли из формы! Со второй на третью - не перешли, так как в форме их не было!
из первой страницы на вторую перешли из формы! Со второй на третью - не перешли, так как в форме их не было!
Спустя 22 минуты, 37 секунд (15.03.2011 - 09:59) Зодчий написал(а):
imbalance_hero, как не перешли?
В первой форме-выбираем,что изменяем.Выбрали. Перешли на вторую.Здесь отображается текущее значение, и поля для ввода новых значений.Вводим например Адрес 222 и Доп.данные.Переходим на третью форму.
Видим введенные во второй форме данные.
Скрины приложил
В первой форме-выбираем,что изменяем.Выбрали. Перешли на вторую.Здесь отображается текущее значение, и поля для ввода новых значений.Вводим например Адрес 222 и Доп.данные.Переходим на третью форму.
Видим введенные во второй форме данные.
Скрины приложил
Спустя 55 секунд (15.03.2011 - 10:00) Зодчий написал(а):
Форма2
Спустя 40 секунд (15.03.2011 - 10:01) Зодчий написал(а):
форма3
Спустя 9 минут, 19 секунд (15.03.2011 - 10:10) Зодчий написал(а):
а понял...значение ud_name не передается из второй в третью.
Спустя 22 минуты, 27 секунд (15.03.2011 - 10:32) Зодчий написал(а):
А как сделать чтобы
В подписи этой кнопки было не просто $_POST['ud_name'], а например Изменить $_POST['ud_name']
<input type="hidden" name="ud_name" value="<?php echo $_POST['ud_name']; ?>" />
В подписи этой кнопки было не просто $_POST['ud_name'], а например Изменить $_POST['ud_name']
<input type="hidden" name="ud_name" value="<?php echo $_POST['ud_name']; ?>" />
Спустя 40 секунд (15.03.2011 - 10:33) imbalance_hero написал(а):
Зодчий
его надо отдельно передавать в скрытом input, я выше показал пример.
На второй страницы в форму добавь:
его надо отдельно передавать в скрытом input, я выше показал пример.
На второй страницы в форму добавь:
<input type="hidden" name="ud_name" value="<?php echo $_POST['ud_name']; ?>" />
Спустя 47 секунд (15.03.2011 - 10:34) imbalance_hero написал(а):
Зодчий
Вообще вся форма делается на одной странице, а не на нескольких, тогда не будут возникать такие проблемы, как у тебя.
Вообще вся форма делается на одной странице, а не на нескольких, тогда не будут возникать такие проблемы, как у тебя.
Спустя 5 минут, 36 секунд (15.03.2011 - 10:39) Зодчий написал(а):
imbalance_hero, всмысле выбирается Узел, открываются доп поля для редактирования, редактируется и сохраняется?Я не нашел как это сделать на чистом PHP.
Спустя 2 часа, 17 минут, 8 секунд (15.03.2011 - 12:56) Trianon написал(а):
Вот Вам чистый php.
Ни на грош оформления, одна голая логика.
Сугубо под Вашу таблицу и Ваше описание желаемых действий.
Разбирайтесь.
Ни на грош оформления, одна голая логика.
Сугубо под Вашу таблицу и Ваше описание желаемых действий.
Разбирайтесь.
<?php
$ud_id = @$_POST['ud_id'];
$ud_id_r = @$_POST['ud_id_r'];
$ud_name = @$_POST['ud_name'];
$ud_address = @$_POST['ud_address'];
$ud_note = @$_POST['ud_note'];
mysql_connect("localhost","aleks","12345")
or die("Error on mysql connect<br>". mysql_error());
mysql_select_db($db = "work")
or die("Cannot select database $db <br>". mysql_error());
mysql_query($sql = "SET NAMES 'cp1251'")
or die("Error on sql: <br>$sql<br>". mysql_error());
echo "
<form method=post>
Select node:
<SELECT name=ud_id >
<option value=0 >--select node--</option>";
$res = mysql_query($sql = "SELECT ud_id, ud_name FROM ud ORDER BY ud_name")
or die("Error on sql: <br>$sql<br>". mysql_error());
while($row = mysql_fetch_assoc($res))
{
$id = htmlspecialchars($row['ud_id']);
$name = htmlspecialchars($row['ud_name']);
$sel = $id == $ud_id ? 'selected=selected ' : '' ;
echo "
<option value=$id $sel >$name</option>";
}
echo "
</SELECT>
<br />";
if(!empty($ud_id))
{
$res = mysql_query($sql = "SELECT ud_id, ud_name, ud_address, ud_note FROM ud WHERE ud_id = ".(int)$ud_id)
or die("Error on sql: <br>$sql<br>". mysql_error());
$row = mysql_fetch_assoc($res);
if(!$row)
echo "Node id ".htmlspecialchars($node_id)." not found. Select other node!<br/>";
else
{
if($ud_id == $ud_id_r && $ud_address !== null && $ud_note !== null)
{
$e_address = "'". mysql_real_escape_string($ud_address)."'";
$e_note = "'". mysql_real_escape_string($ud_note )."'";
$res = mysql_query($sql = "
UPDATE ud
SET ud_address = $e_address,
ud_note = $e_note
WHERE ud_id = ".(int)$ud_id)
or die("Error on sql: <br>$sql<br>". mysql_error());
if(mysql_affected_rows())
{
echo "record successfully updated<br>Now values are: <br>";
$res = mysql_query($sql = "SELECT ud_id, ud_name, ud_address, ud_note FROM ud WHERE ud_id = ".(int)$ud_id)
or die("Error on sql: <br>$sql<br>". mysql_error());
$row = mysql_fetch_assoc($res);
}
}
$id = htmlspecialchars($row['ud_id']);
$name = htmlspecialchars($row['ud_name']);
$address = htmlspecialchars($row['ud_address']);
$note = htmlspecialchars($row['ud_note']);
echo "
<input type=hidden name=ud_id_r value=\"$id\" />
<br />
name:
<input name=ud_name value=\"$name\" disabled=disabled />
<br />
address:
<input name=ud_address value=\"$address\" />
<br />
note:
<input name=ud_note value=\"$note\" />
<br />";
}
}
echo " <input type=submit />
</form>";
?>
Спустя 1 час, 33 минуты, 58 секунд (15.03.2011 - 14:30) Зодчий написал(а):
Trianon, огромное спасибо!
Буду разбираться!
Буду разбираться!