echo "<option value=\"$a_row->id\"";
if (isset($id) && $id == $a_row->id)
echo "SELECTED";
echo "> $a_row->domain\n";
}
<html>
<head>
<title></title>
</head>
<body>
[php]
<?php
$domain = $_POST['domain'];
$id = $_POST['id'];
$user="root";
$pass="";
$db="sample";
$link=mysql_connect("localhost", $user, $pass);
if (!$link)
die ("Couldn't connect to MySQL");
mysql_select_db($db, $link)
or die ("Couldn't open $db:". mysql_error());
if (isset ($domain) && isset ($id)){
$query="UPDATE domains SET domain = '$domain' where id= '$id' ";
$result=mysql_query($query);
if (!$result)
die ("Couldn't update:".mysql_error());
echo "<h1>Table updated:" .mysql_affected_rows()."
row(s) changed </h1><p>";
}
?>
<form action="<? echo $_SERVER['$PHP_SELF']?>" method="POST">
<select name="id">
<?
$result=mysql_query("SELECT domain, ID FROM domains");
while ($a_row = mysql_fetch_object($result) ){
echo "<option value=\"$a_row->id\"";
if (isset($id) && $id == $a_row->id)
echo "SELECTED";
echo "> $a_row->domain\n";
}
mysql_close($link);
?>
</select>
<input type="text" name="domain">
</form>
</body>
</html>
Спустя 24 минуты, 41 секунда (5.04.2012 - 00:22) Placido написал(а):
Для того чтобы разобраться в чем ошибка, нужно привести хотя бы текст ошибки.
См. http://phpforum.su/index.php?showtopic=2459, пункты 1-4 и 6.
См. http://phpforum.su/index.php?showtopic=2459, пункты 1-4 и 6.
Спустя 9 часов, 15 минут, 26 секунд (5.04.2012 - 09:37) OleKh написал(а):
Текста ошибки нет. Форма выводится. В <select>выводится список domain, а в <input> должен вводится новый domain, который должен заменить domain из <select> и должно выводится сообщение - Table updated:1 row(s) changed. А фактически постоянно выводится Table updated:0row(s) changed и в базе ничего не меняется.
Спустя 49 минут, 19 секунд (5.04.2012 - 10:26) Jack_White написал(а):
Привет, сильно не вдавался в скрипт, книга жесткая код некорректный в моральном плане.
А по теме ты писал:
А по теме ты писал:
Цитата (OleKh @ 4.04.2012 - 20:57) |
if (isset ($domain) && isset ($id)){ $query="UPDATE domains SET domain = '$domain' where id= '$id' "; // у тебя в базе id не INT типа? а то параметр $id передается как строка может в этом проблема? $result=mysql_query($query); if (!$result) die ("Couldn't update:".mysql_error()); echo "<h1>Table updated:" .mysql_affected_rows()." row(s) changed </h1><p>"; } |
Спустя 2 часа, 24 минуты, 49 секунд (5.04.2012 - 12:51) Guest написал(а):
Скрипт вдруг заработал. После того, как появилась ошибка на эту строку, я добавил $id в кавычки (метод проб и ошибок:)). Ошибка не выдавалась, но скрипт не работал. Потом я добавил скобки. Затем убрал скобки и кавычки - и заработал, хотя изначально $id без кавычек (то есть не строка) не срабатывал. Наверное пробел был лишний.
Всем спасибо за участие в теме.
$query="UPDATE domains SET domain = '$domain' where id= '$id' ";
Всем спасибо за участие в теме.
Спустя 20 минут, 47 секунд (5.04.2012 - 13:12) OleKh написал(а):
Нашел ошибку - id должно было быть вместо ID:
$result=mysql_query("SELECT domain, ID FROM domains");
$result=mysql_query("SELECT domain, ID FROM domains");