Автоматическое заполнение таблицы MySQL

larios

Guest
Автоматическое заполнение таблицы MySQL

Каждый раз, при запуске скрипта, таблица MySQL заполняется автоматически пустыми строками. Как сделать так, чтобы таблица заполняласть только при отправке формы и к тому же при условии, что поля заполнены. Код написал вроде бы правильно, но что-то не так. Подскажите, в чем проблема!
PHP:
<?
// подключаюсь к базе данных
$link = mysql_pconnect("localhost", "root","") or die("Не могу подключиться!");
mysql_select_db("guest",$link) or die("Не могу найти таблицу!");
// обязательное заполнение формы
function error($error)	{if ($error) echo "<br>".$error;}
if (!empty($sbm)) {
  	if (empty($name)) {
	   	$error['name'] = "Это обязательное поле!";
	}	 
}
if (!$error) {$result = mysql_query ("INSERT INTO book (name) VALUES('$name')");}
?>
<!-- форма для добавления записи --> 
<form action='index.php' method='post'>
<table><tr><td>
<input type='text' name='name'>
<? @error($error['name']); ?>
</td></tr>
<tr><td>
<input type='submit' name='sbm' value='Добавить'>
</td></tr></table>
</form>
 

larios

Guest
Заменил $name на $_POST['name'], но все тоже самое. Таблица автоматически заполняется при запуске скрипта.
Код:
 if (!empty($sbm)) { 
      if (empty($name)) { 
           $error['name'] = "Это обязательное поле!"; 
    }
заменил на
Код:
 if (!empty($_POST['sbm'])) { 
      if (empty($_POST['name'])) { 
           $error['name'] = "Это обязательное поле!"; 
    }
Таблица тоже вроде без ошибок
Код:
id int(10) unsigned NOT NULL auto_increment, name varchar(100) NOT NULL , PRIMARY KEY  (id)
В чем же проблема?
 

Фанат

oncle terrible
Команда форума
На вопрос "В чём проблема" должен отвечать сам программист.
Не дядя на форуме, а сам программист.
Заодно узнает, как работает его программа.
Если у тебя без отправки формы идёт запрос в базу - значит, у тебя массив $error не пустой
вот выведи этот массив на экран и посмотри.
Если там что-то, что там не должно быть - посмотри логику своего скрипта и выведи ту переменную, которой не должно быть. Так и доберёшься до корня проблемы.
Подробнее читай PHP FAQ: Ничего не работает! Что делать???
 

Фанат

oncle terrible
Команда форума
круто.
вот, оказывается, в чём корень проблемы.
скажи пожалуйста, а зачем в этом выражении "if (!$error and $name)" присутствует "!$error and "
мне страсть, как любопытно это узнать!

-~{}~ 14.05.05 10:38:

Ну, и как следствие - в чём смысл существования этого глубокомысленного кода:
if (!empty($sbm)) {
if (empty($name)) {
$error['name'] = "Это обязательное поле!";
}
}
-~{}~ 14.05.05 10:40:

Вопрос "при чём здесь mysql" задвать, как я понимаю, тоже бессмысленно.
"патамучта оно запрос делает".
Естественно.
если бы вместо mysql_query там стояло составление расписания Аэрофлота, ты бы за ответом пошёл в аэропорт Шереметьево.
 

larios

Guest
А для того, что если запустить код и не вводить данные в форму, то ниже выводиться сообщение об обязательном заполнении этой формы. Так мне нужно. А часть этого кода в форум записал, потому что думал, что и в нем может быть проблема. Ну а по поводу Аэропорта и Шереметьево - грубовато. Видимо Вы PHP раньше меня стали изучать, отсюда и надменность в общении. Но всер-равно спасибо за поддержку.
 

Фанат

oncle terrible
Команда форума
При чём здесь надменность?
Не пробовал кроме надменности увидеть ещё хоть что-то?
Или как увидел надменность - так сразу глазки слёзками заплакали? и больше уже ни о чём говорить не можешь?
Тебе не кажется, что у тебя есть более важные проблемы, кроме чьей-то надменности?

При чём здесь срок изучения пхп?
Что - для того, чтобы абстрагироваться от запроса нужны какие-то особенные знания, кроме простой житейской логики?

при чём здесь вообще все эти оправдания?
Ты сюда пришёл проблему решить или оправдываться сроком изучения пхп? Ты меня ни с кем не перепутал? Я тебе мама? завуч? Гаишник? Ты мне что-то должен? Нет? Ногда зачем оправдываться?
Не лучше ли обратить внимание на свои проблемы и заняться их исправлением?
или ты считаешь, что если у тебя срок маленький, то проблемы исправлять не нужно?

Ты считаешь, что я вопросы задаю, потому, что это мне надо узнать, зачем в этом выражении "if (!$error and $name)" присутствует "!$error and "?
Ты серёзно так думаешь?
 
Сверху