Показать сообщение отдельно
Старый 30.10.2013, 13:29   #23
SergiK_KilleR
Пользователь
 
Аватар для SergiK_KilleR
 
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 15
Поблагодарили 53 раз(а) в 14 сообщениях
SergiK_KilleR Скоро придёт к известности
По умолчанию

что передает поле $row['entry'] ? автоинкрементное значение?
переписанный вариант того что вы пытались сделать. Проверку введенных данных (GET/POST) желательно делать до передачи в какие-либо функции, это упростит понимание того что делает сама функция и отпадет надобность дополнительных проверок в самих функциях.

Код:
<?
function add_line($name){
	global $row;

	$query = sprintf(
		"INSERT INTO `line` (`id_area`, `name`) VALUES ('%d','%s')",
		$row['entry'],
		mysql_real_escape_string($name)
	);
	$res = mysql_query($query);

	if(!$res){
		exit("<b>Query failed:</b> " . mysql_error());
	}

	return true;
}

if(isset($_POST['add_line'])){
	$name = isset($_POST['name']) ? trim($_POST['name']) : null;
	if($name){
		add_line($name);
	}
}
?>
<html><head><title>Сортировка по категориям</title>
</head>
<body>
<center>
<form method="post">
	<select name="categories">
		<option value=''>-- Выберите категорию --</option>
<?         
$result =  mysql_query ("SELECT * FROM area") 
                or die ("<b>Query failed:</b> " . mysql_error());
while ($row = mysql_fetch_array($result)){
	$selected = (isset($_POST['categories']) && $row['entry'] == intval($_POST['categories'])) ? " selected" : "";
	echo "<option value='".$row['entry']."'".$selected.">".$row['name']."</option>";
}
?>
	</select>
</form>
</center>

<form method="POST" name="add_line">
	<table>
	<tr>
		<td>поле</td>
		<td><input type="text" name="name"></td>
	</tr>
	<tr>
		<td><input type="submit" name="submit" value="save"></td>
	</tr>
</table>
</form>
</body></html>
в приведенном мной примере переменная $row должна быть объявлена до вызова функции add_line($name).

Последний раз редактировалось SergiK_KilleR; 30.10.2013 в 13:37.
SergiK_KilleR вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Visible (05.11.2013)