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

Форум MySQL

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

 

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

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

тема: Скрипт не заполняет поля БД
 
 автор: ares44   (07.04.2005 в 16:18)   письмо автору
 
 

Почему этот скрипт добавляет в базу данных пустую строку?
Существует база данных (она выбирается в скрипте сonfig.php) в ней есть таблица setting с тремя стлобцами
name, url, email.
По задумке данный скрипт должен заполнять базу данных если в ней нет записей и обновлять поля если есть.

<?
include "config.php";
function 
setting_menu ()
{
?>
<form method="post" action="<? setting (); ?>">
<table border="0">
<tr><td>&#205;&#224;&#231;&#226;&#224;&#237;&#232;&#229; &#209;&#224;&#233;&#242;&#224;:</td>
<td><input type="text" name="name" size="60" maxlength="60"></td>
<td>1</td>
<tr><td>URL</td>
<td><input type="text" name="url" size="60" maxlength="60"></td>
<td>1</td>
<tr><td>e-mail &#224;&#228;&#236;&#232;&#237;&#232;&#241;&#242;&#240;&#224;&#242;&#238;&#240;&#224;</td>
<td><input type="text" name="email" size="40"></td>
<td>1</td>
<tr><td><input type="submit" value="&#241;&#238;&#245;&#240;&#224;&#237;&#232;&#242;&#252;"></td></tr>
</table>
</form>
<?
}
setting_menu ();

function 
setting ()
{
$name=($HTTP_POST_VARS['name']);
$url=($HTTP_POST_VARS['url']);
$email=($HTTP_POST_VARS['email']);


$select_row="SELECT * FROM setting"
$query=mysql_query($select_row); 
$count_row=mysql_num_rows($query);

if(
$count_row==0)
{
   if (!empty(
$HTTP_POST_VARS['name']) or !empty($HTTP_POST_VARS['url']) or !empty($HTTP_POST_VARS['email']))
   {
   
$setting=mysql_query ("insert into setting values ('$name','$url','$email');");
   }
}
else
{
 if (!empty(
$HTTP_POST_VARS['name']) or !empty($HTTP_POST_VARS['url']) or !empty($HTTP_POST_VARS['email']))
   {
   
$setting=mysql_query ("update setting name='$name',url='$url', email='$email';");
   }
}
}

?>

   
 
 автор: XPraptor   (07.04.2005 в 17:12)   письмо автору
 
   для: ares44   (07.04.2005 в 16:18)
 

Как то странно ты язык SQL используешь. Тут устанешь разбираться что разрешено в SQL из твоего кода, а что нет. Пиши правильно запросы как положено и все должно работать. Заодно переменные POST можешь написать в привычном виде, может тоже где глюк закрался.
$_POST["name"] вместо $HTTP_POST_VARS['name']
А запросы так: (кстати, таблица у тебя точно с маленькой буквы начинается?)
INSERT INTO setting (name, url, email) VALUES ($_POST["name"], $_POST["url"], $_POST["email"])

UPDATE setting SET name='$_POST["name"]', ну и т.д.

   
 
 автор: ares44   (07.04.2005 в 18:04)   письмо автору
 
   для: XPraptor   (07.04.2005 в 17:12)
 

это все XML с таким трудом заставляю себя писать команды болшими буквами

   
 
 автор: cheops   (07.04.2005 в 21:12)   письмо автору
 
   для: ares44   (07.04.2005 в 16:18)
 

Вместо
update setting name='$name',url='$url', email='$email'

следует писать
update setting set name='$name',url='$url', email='$email'

   
Rambler's Top100
вверх

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