Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2012, 08:31   #1
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
Вопрос Проблема с запросом(INSERT INTO)

Здравствуйте уважаемые программисты не могли бы вы посмотреть следующий нижеприведенный листинг программы:
PHP код:
if (isset($_POST['CmdAdd_act']))
  {
     
$act $_POST['Tb_activity'];

     if (!
$act)
       die (
"Не все данные введены.<br>
    Пожалуйста, вернитесь назад и закончите ввод"
);
     if ( !
$con ) die ("Невозможно подключение к PostgreSQL");

    
pg_query($con"SET NAMES 'windows-1251'");

     
$strSQL "INSERT INTO tb_activity(";
     
$strSQL $strSQL "activity) ";

     
$strSQL $strSQL "VALUES(";
     
$strSQL $strSQL "'".$act."')";

     
$result pg_query ($con$strSQL);
  } 
Проблема в следующем, при нажатии на кнопку запись не добавляется в таблицу при этом никаких ошибок не выдает.
Tb_activity- текстовое поле куда ввожу информацию
$con - переменная соединения с БД
CmdAdd_act - кнопка "Добавление"
manula вне форума Ответить с цитированием
Старый 08.10.2012, 11:08   #2
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

Если ничего не пишет, значит не срабатывает if (isset($_POST['CmdAdd_act'])).

PHP код:
    $act $_POST['Tb_activity'];
    if (!
$act)
       die (
"Не все данные введены.<br>
               Пожалуйста, вернитесь назад и закончите ввод"
);
    if ( !
$con ) die ("Невозможно подключение к PostgreSQL"); 
Connection почему здесь проверяете?

PHP код:
     $strSQL "INSERT INTO tb_activity(";
     
$strSQL $strSQL "activity) ";

     
$strSQL $strSQL "VALUES(";
     
$strSQL $strSQL "'".$act."')"
Это вобще индусский код.
buriat вне форума Ответить с цитированием
Старый 08.10.2012, 14:07   #3
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Проверка на connection это не обязательно, главное почему проверка не срабатывает, а по поводу запроса ну покажи другой метод, если знаете, я делал таким.
manula вне форума Ответить с цитированием
Старый 08.10.2012, 14:12   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
главное почему проверка не срабатывает
Сказали же:
Цитата:
Если ничего не пишет, значит не срабатывает if (isset($_POST['CmdAdd_act'])).
Цитата:
ну покажи другой метод
Имелась ввиду "красивая запись":
Код:
     $strSQL = "INSERT INTO tb_activity(activity) VALUES(."'".$act."')";
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.10.2012, 14:52   #5
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

Цитата:
Сообщение от manula Посмотреть сообщение
главное почему проверка не срабатывает
вероятнее всего проблема в форме, покажи код
buriat вне форума Ответить с цитированием
Старый 08.10.2012, 15:12   #6
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Вот листинг формы:
PHP код:
echo "<fieldset class=fieldset>
<legend><FONT size=3>Форма добавления:</font></legend>
  <table cellpadding=0 cellspacing=3 width=100% border=0>
   <tr valign=bottom>
    <td>
     <FONT size=3>Направление деятельности:</font>
     <input type=text name='Tb_activity' size=70 value=''>
     <input type='submit'  class='gradient' name='CmdAdd_act' value='Добавить'>
     </td>
   </tr>
 </table>
</fieldset>"
;
echo 
"</form>"
manula вне форума Ответить с цитированием
Старый 08.10.2012, 15:52   #7
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

А CmdAdd_act и не сабмитится - это просто название кнопки, в Вашем случае достаточно одной проверки на наличие
Код:
$_POST['Tb_activity']
То бишь не
Код:
 if (isset($_POST['CmdAdd_act'])), а if (isset($_POST['Tb_activity']))
nec117 вне форума Ответить с цитированием
Старый 08.10.2012, 16:33   #8
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Оставил одну проверку все равно эффект тот же, не добавляет запись, а в самой таблице в заголовке этого поля в режиме просмотра написано [PK] - это первичный ключ или как расшифровывается?
manula вне форума Ответить с цитированием
Старый 08.10.2012, 16:43   #9
buriat
Форумчанин
 
Регистрация: 28.06.2010
Сообщений: 189
По умолчанию

а где открываюший тэг формы?
buriat вне форума Ответить с цитированием
Старый 09.10.2012, 08:17   #10
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Вот 2-ой листинг аналогичный, эффект тот же:
PHP код:
echo "<form name='Spr_Add' action='Frm_activity.php' method='POST'>";
echo 
"<fieldset class=fieldset>
 <legend><FONT size=3>Форма добавления:</font></legend> 
  <table cellpadding=0 cellspacing=3 width=100% border=0>
   <tr valign=bottom>
    <td>
     <FONT size=3>Наименование организации:</font>
     <input type=text name='Tb_cstm' size=50 value=''>
     <input type='submit'  class='gradient' name='CmdAdd_cstm' value='Добавить'>
   </td>
  </tr>
 </table>
</fieldset>"
;
if (isset(
$_GET['CmbAdd_cstm']))
  {
     
pg_query($con"SET NAMES 'windows-1251'");

    
$strSQL "INSERT INTO tb_cstm(";
    
$strSQL $strSQL "naim_cstm) ";

    
$strSQL $strSQL "VALUES(";
    
$strSQL $strSQL "'".$_POST["Tb_cstm"]."')";

    
$result pg_query ($con$strSQL);
  }
echo 
"</form>"
manula вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранить из RichEdit текст и форматирование запросом для ADOQuery через INSERT INTO silent_lab БД в Delphi 0 15.07.2011 16:58
Проблема при Insert. Postgres. ssdm SQL, базы данных 2 30.03.2011 20:59
Проблема с триггером на Insert Ivan_32 SQL, базы данных 4 05.10.2010 14:49
Проблема с запросом! LizaVeta Общие вопросы Delphi 3 09.05.2010 07:07
арод помогите с запросом на Insert в TQuery xxxsas SQL, базы данных 12 08.01.2009 16:26