Такая проблема:
Есть форма
<form name="FormName" method="post">
<input name="book_id" type="text" value=""><br>
<input name="name" type="text" value=""><br>
<input name="author" type="text" value=""><br>
<input name="izdat" type="text" value=""><br>
<input name="page" type="text" value=""><br>
<input type="submit" name="send" value="Send">
</form>
и есть php - код который должен работать на этой же странице, т.е. ниже я пишу:
if (!empty($_POST['FormName'])) {
$query = "INSERT INTO book SET book_id='".$_POST['book_id']."', name='".$_POST["name"]."',
autor='".$_POST["author"]."', page='".$_POST["page"]."', izdat='".$_POST["izdat"]."' ";
}
Проблема в том, что когда первый раз открываешь эту страницу - вносит в БД строку с нулем. Дальше заполняешь - все нормально вносится. Но какие бы я проверки не придумывал (и на кнопку if ($send) и на поля if ($book_id)) либо перестает работать либо после обновления пишет Duplicate entry '0' for key 1.
Подскажите кто чем может, голова кипит...
Спустя 14 минут, 27 секунд (17.01.2010 - 15:57) cyberx написал(а):
Эти оба когда у тебя на одной страничке и хочешь при нажатии внести в базу?
Спустя 33 минуты, 56 секунд (17.01.2010 - 16:31) cyberx написал(а):
У тебя ошибка даже с инсертом и всегда проверяй глобальные переменные и фильтруй их. В форм с помощью action укажите страницу, допустим она page.php.
Потом проверить если существует submit
Как минимум так проверять
<form name="FormName" method="post" action="page.php">
<input name="book_id" type="text" value=""><br>
<input name="name" type="text" value=""><br>
<input name="author" type="text" value=""><br>
<input name="izdat" type="text" value=""><br>
<input name="page" type="text" value=""><br>
<input type="submit" name="submit" value="Send">
</form>
Потом проверить если существует submit
if (isset($_POST['submit']))
{
if (isset($_POST['book_id'])) { $book_id = $_POST['book_id']; if ($book_id == '') { unset($book_id); }}
// и так все
if (empty($book_id) or empty($name) or empty($author) or empty($page) or empty($izdat))
{
exit("не все поля заполнены");
}
else
{
$book_id = trim($book_id);
$book_id = htmlspecialchars($book_id);
$book_id = mysql_real_escape_string($book_id);
// и так все
$query = mysql_query ("INSERT INTO `имя таблички` (book_id,name,autor,page,izdat) VALUES('$book_id','$name','$autor','$page','$izdat')");
if ($query=='TRUE')
{
echo "Внесено удачно";
}
else
{
exit("Ошибка");
}
}
}
Как минимум так проверять
Спустя 1 час, 35 минут, 34 секунды (17.01.2010 - 18:07) Vok написал(а):
Спасибо ОГРОМНОЕ! =))))
Все получилось!
Можно еще вопрос:
У меня теперь в этой форме появились два выпадающих списка. И на один из них привязаны две радиокнопки. Т.е. нада отправить из одного запроса посыл в три таблицы. Как это лучше реализовать?
Блин... может лучше целый код привести? Я короче сам запутался, что просто не знаю как это реализовать. Подскажите, пожалуйста, хоть в какую сторону копать если долго разбираться в моей писанине.
Все получилось!
Можно еще вопрос:
У меня теперь в этой форме появились два выпадающих списка. И на один из них привязаны две радиокнопки. Т.е. нада отправить из одного запроса посыл в три таблицы. Как это лучше реализовать?
// первый селект с выбором уточнения на 2-х радиокнопках
if ($_POST['SelectName1']){
if ($SelectName1=="a")
{
if (($_POST['radioknopka1'])=="name1")
{
$query= посыл в 2 и 3 таблицы где $book_id то что ввел пользователь в этом запросе
}
if (($_POST['radioknopka2'])=="name2")
{
$query= посыл в 2 и 3 таблицы где $book_id то что ввел пользователь в этом запросе
}
}
if ($SelectName1=="b")
{
$query= посыл в 2 таблицу где $book_id то что ввел пользователь в этом запросе
}
// и т .д. для первого селекта
}
// начался 2 селект все в той же форме
if ($_POST['SelectName1']){
if ($SelectName2=="a")
{
$query= посыл в 2 таблицу где $book_id то что ввел пользователь в этом запросе
}
if ($SelectName2=="b")
{
$query= посыл в 2 таблицу где $book_id то что ввел пользователь в этом запросе
}
// и т.д. для 2 селекта
}
Блин... может лучше целый код привести? Я короче сам запутался, что просто не знаю как это реализовать. Подскажите, пожалуйста, хоть в какую сторону копать если долго разбираться в моей писанине.
Спустя 2 часа, 10 минут, 16 секунд (17.01.2010 - 20:17) Vok написал(а):
Люди, ну хоть скажите, пожалуйста, алгоритм, как мне делать такую проверку и выполнять заполнение БД. В общих словах.
Спустя 6 часов, 54 минуты, 13 секунд (18.01.2010 - 03:11) Dron19 написал(а):
Берешь переменную в нее вставляешь запрос на добавление в одну таблицу данных, потом проверяешь и если правильно, то так же и в другие.
Спустя 6 часов, 2 минуты, 48 секунд (18.01.2010 - 09:14) Vok написал(а):
Спасибо, буду пробовать.