Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: добавление записей в БД
 
 автор: ares44   (20.04.2005 в 15:53)   письмо автору
 
 

Данный скрипт добавляет записи в БД, но после первого добавления переменные $topname $toptype остаются заданными и при обнавлении страницы автоматически добавляют одинаковые записи в БД.
Что можно сделать?

function form_add_topic ()
{
?>
<p>ДОБАВЛЕНИЕ НОВОГО РАЗДЕЛА</p>
<form method="post" action="<? add_topic (); ?>">
<table cellpadding="3"><tr>
<td>Название  раздела:</td>
<td><input type="text" name="topname" size="15" maxlength="15"></td></tr>
<tr><td>Тип раздела:</td>
<td><select name="toptype">
<option value="galery">галерея</option>
<option value="rew">рецензия</option>
<option value="stat">статья</option>
</select></td></tr>
<tr><td><input type="submit" value="добавить"></td></tr>
</table></form>
<?
}


function 
add_topic ()
{
$topname=trim($_POST["topname"]);
$toptype=trim($_POST["toptype"]);


  if(!empty(
$topname))
  {
  
$querry=mysql_query ("INSERT INTO topics VALUES (0,'$topname','$toptype');");
  }

}

   
 
 автор: casper   (20.04.2005 в 16:51)   письмо автору
 
   для: ares44   (20.04.2005 в 15:53)
 

хм... думаю можно скрипт обработчика разместить на отдельной странице, и после выполнения скрипта переадрисовать на форму. Если же не устраивает, наверное можно уничтожить переменные после выполнения скрипта, функцией unset() .

   
 
 автор: cheops   (20.04.2005 в 18:30)   письмо автору
 
   для: ares44   (20.04.2005 в 15:53)
 

Хм... не совсем корректное использование функции add_topic(), дело в том, что она будет вызываться всякий раз когда будет вызываться form_add_topic() и до того, как пользователь что либо введёт. Лучше действительно назначить статически обработчик handler.php
<?php
function form_add_topic () 

?> 
<p>ДОБАВЛЕНИЕ НОВОГО РАЗДЕЛА</p> 
<form method="post" action="handler.php"> 
<table cellpadding="3"><tr> 
<td>Название  раздела:</td> 
<td><input type="text" name="topname" size="15" maxlength="15"></td></tr> 
<tr><td>Тип раздела:</td> 
<td><select name="toptype"> 
<option value="galery">галерея</option> 
<option value="rew">рецензия</option> 
<option value="stat">статья</option> 
</select></td></tr> 
<tr><td><input type="submit" value="добавить"></td></tr> 
</table></form> 
<?php 
}
?>

в котором и вызывать функцию add_topic()
<?php
  add_topic
();
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования