Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: [PHP]Помощь  (Прочитано 10329 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Lunik
Постоялец

ru
Offline Offline

« : 18-03-2011 07:51 » 

Подскажите пожалуйста, не могу понять в чем проблема.
Есть страница: на странице есть форма через которую пользователь вносить данные в БД
В таблице есть Категории, которые запросом из БД попадют в теги<select><option></option></select>
Зам Запрос:
Код:
<?php
$query 
mysql_query("SELECT * FROM category") or die ("mysql_error"__LINE__ );   
            if(
mysql_num_rows($query)<=0)
      {
              echo (
"записей не обнаружено!");
              }else{   
                      echo (
" <form action=""  method="POST" enctype="multipart/form-data"> ");
                     echo (
"  Категории: <select name="cat">");
                      while (
$row mysql_fetch_array($query))
                      {
                              echo (
"<option value=&#39;$row[cat_id]&#39;>$row[name]</option>\n");
                      };
                      echo (
"</select><br>");                    
      };
?>

Данные в селект я получаю послче чего идет за прос на внесение данных в БД
Код:
<?php
include_once (&#39;include/_db.class.php&#39;);
if (isset ($_POST[&#39;cat_id&#39;])) {$cat = $_POST[&#39;cat_id&#39;];  }
if (isset ($_POST[&#39;name&#39;])) {$name = $_POST[&#39;name&#39;];  }
if (isset ($_POST[&#39;barcode&#39;])) {$barcode = $_POST[&#39;barcode&#39;];  }
if (isset ($_POST[&#39;img&#39;])) {$img = $_POST[&#39;img&#39;];   }
if (isset ($_POST[&#39;date&#39;])) {$date = $_POST[&#39;date&#39;];   }
if (isset($cat) && isset($name) && isset($barcode) && isset($img) && isset($date))
   {
$result mysql_query ("INSERT INTO `tovar` (name, barcode, img, cat_id, date) VALUES ( &#39;$name&#39;, &#39;$barcode&#39;, &#39;$img&#39;, &#39;$cat&#39;, &#39;$date&#39;) " );
  if ( 
$result == true 
  {
  echo 
"<p>Запись добавлена</p>";
  }
   else
  {
  echo 
"<p>Запись не добавлена</p>";
  }
  }
?>

Проблема в том, что при отправки запроса на внесеие инфы в БД информация из <select></select> не попадает.
Полный код страницы:
Код:
 <?php
      $query 
mysql_query("SELECT * FROM category") or die ("mysql_error"__LINE__ );   
            if(
mysql_num_rows($query)<=0)
      {
              echo (
"записей не обнаружено!");
              }else{    
?>

                      <form action=""  method="POST" enctype="multipart/form-data">
                      Категории: <select name="cat">
                      <?php
                      
while ($row mysql_fetch_array($query))
                      {
                              echo (
"<option value=&#39;$row[cat_id]&#39;>$row[name]</option>\n");
                      };
                      echo (
"</select><br>");                    
      };
?>

      Название продукта<Br>
      <input type="text" name="name" value=""><Br>
      Артикул<Br>
      <input type="text" name="barcode" value=""><Br>
      Картинка<Br>
      <input type="text" name="img" value=""><Br>
      Дата<Br>
      <input type="text" name="date" value=""><Br>
      <input type="submit">
 </form>
 <?php
 error_reporting
E_ALL );
include_once (&
#39;include/_db.class.php&#39;);
if (isset ($_POST[&#39;cat_id&#39;])) {$cat = $_POST[&#39;cat_id&#39;];  }
if (isset ($_POST[&#39;name&#39;])) {$name = $_POST[&#39;name&#39;];  }
if (isset ($_POST[&#39;barcode&#39;])) {$barcode = $_POST[&#39;barcode&#39;];  }
if (isset ($_POST[&#39;img&#39;])) {$img = $_POST[&#39;img&#39;];   }
if (isset ($_POST[&#39;date&#39;])) {$date = $_POST[&#39;date&#39;];   }
if (isset($cat) && isset($name) && isset($barcode) && isset($img) && isset($date))
   {
$result mysql_query ("INSERT INTO `tovar` (name, barcode, img, cat_id, date) VALUES ( &#39;$name&#39;, &#39;$barcode&#39;, &#39;$img&#39;, &#39;$cat&#39;, &#39;$date&#39;) " );
  if ( 
$result == true 
  {
  echo 
"<p>Запись добавлена</p>";
  }
   else
  {
  echo 
"<p>Запись не добавлена</p>";
  }
  }
?>
« Последнее редактирование: 18-03-2011 07:53 от Lunik » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 18-03-2011 08:09 » 

Сам писал?

Сделай след..

$sql = "INSERT INTO `tovar` (name, barcode, img, cat_id, date) VALUES ( '$name', '$barcode', '$img', '$cat', '$date');
echo $sql; exit;
 
и покажи результат.

Если ты отправляешь данные методом post, то проверять на isset их не нужно, их проверять нужно на валидность.


Добавлено через 1 минуту и 38 секунд:
сравни

if (isset ($_POST['cat_id'])) {$cat = $_POST['cat_id'];  }

<select name="cat">
« Последнее редактирование: 18-03-2011 08:11 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Lunik
Постоялец

ru
Offline Offline

« Ответ #2 : 18-03-2011 08:38 » 

сравни

if (isset ($_POST['cat_id'])) {$cat = $_POST['cat_id'];  }

<select name="cat">

Спасибо в этом и была ошибка. все работает.
Невнимательность(
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 18-03-2011 09:02 » new


Если ты отправляешь данные методом post, то проверять на isset их не нужно, их проверять нужно на валидность.

Не совсем я здесь оказался прав Улыбаюсь
Если присутствует хотя бы один элемент из  массива POST, то остальные на isset проверять не надо.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines