Есть база данных, в ней 2 таблицы (category_sklad состоящая из id и name. products_sklad состоящая из id name kolvo category_id). Для добавления товара во второю таблицу используется форма. При попытке добавить в бд данные из формы происходит ошибка. В форме присутствует тег select который берет данные из таблицы category_sklad.
<!DOCTYPE html>
<html>
<head>
<title>Админ-панель добавления товара</title>
<meta charset="utf-8">
</head>
<body>
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db_name = "kaat";
$link = mysql_connect($host, $user, $pass);
mysql_select_db($db_name, $link);
?>
<?php
//Если переменная Name передана
if (isset($_POST["name"])) {
//Вставляем данные, подставляя их в запрос
$sql = mysql_query("INSERT INTO `products_sklad` (`name`, `kolvo`, 'category_id')
VALUES ('".$_POST['name']."','".$_POST['kolvo']."','".$_POST['category_id']."')");
//Если вставка прошла успешно
if ($sql) {
echo "<p>Данные успешно добавлены в таблицу.</p>";
} else {
echo "<p>Произошла ошибка.</p>";
}
}
?>
<table>
<form action="" method="POST">
<tr>
<td>Категория:</td>
<?php
header('Content-type: text/html; charset=utf8');
$sqll = "SELECT * FROM category_sklad";
$result_select = mysql_query($sqll);
echo "<select name='category_id'>";
while($object = mysql_fetch_object($result_select)){
echo "<option value = '$object->id' > $object->name</option>";
}
echo "</select>";
?>
</tr>
<tr>
<td>Наименование:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>Количество:</td>
<td><input type="text" name="kolvo" size="3"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Добавить"></td>
</tr>
</form>
</table>
</body>
</html>
Возможно ошибка в добавлении появилась из-за непроверенных ошибок на предыдущих строках.
Варианты ошибок:
ошибка выбора дб. Здесь 2 варианта:
3.1. базы не существует. Решение: создать базу.
3.2. нет привелегии. Решение: настроить привилегии пользователя.
Наиболее вероятное. Название таблицы и полей не должны быть в одинарных кавычках. Т.е.:
$sql = mysql_query("INSERT INTO products_sklad (name, kolvo, category_id) VALUES ('{$_POST['name']}', '{$_POST['kolvo']}', '{$_POST['category_id']}')");
будет верно. Решение: поставить кавычки правильно.
А верное решение зависит от ошибки, о которой мы не узнаем, пока вы её не предоставите.
P.p.S. Передавать значения из базы без обработки чревато взломом. Так же желательно закрывать соединение
При неотоброжении русских символов попробуйте поставить запросы перед select_db:
query("SET NAMES 'utf8'");
query("SET CHARACTER SET 'utf8'");
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть динамическая переменная $password в которой храниться генерируемый пароль допустим:
Здраствуйте, когда делаю share любую страницу он берет одну и туже информацию из одной страницыНе понимаю в чем проблема, код для share не писал,...