Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Добавить данные в таблицу MySql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Причины почему это не работает?
Less
Отправлено: 03 Мая, 2013 - 12:03:44
Post Id


Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




Создана таблица:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE TABLE zayavka_tbl (
  3. Nom int (5) AUTO_INCREMENT,
  4. FIO varchar(50) NOT NULL,
  5. NomDoc int (5) NOT NULL,
  6. Telephon int (15) NOT NULL,
  7. Dopusk varchar(3),
  8. StartPage int(5) NOT NULL,
  9. EndPage int (5) NOT NULL,
  10. Osnovanie varchar (100) NOT NULL,
  11. constraint Dopusk CHECK (Dopusk IN ('I', 'II', 'III')),
  12. FOREIGN KEY Nom_FK (Nom) REFERENCES secretariat_data_docs_tbl (NomDoc)
  13. ON DELETE CASCADE
  14. );


Форма на HTML:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2.    <head>
  3.    <title> Заявка</title>
  4.    </head>
  5.    <body bgcolor="lavender">
  6.      <h1>
  7.      <font><i><b>
  8.      Электронный секретариат 1.0
  9.       </b></i></font>
  10.     </h1>
  11.          
  12.          <form aСЃtion="/zapros1.php" method="post">
  13. <table>
  14.  <tr> <BR> Ваше имя:<BR> <INPUT TYPE="text" NAME="FIO" SIZE="50" MAXLENGTH="50"><P>
  15.  <tr><BR> Номер документа:<BR> <INPUT TYPE="text" NAME="NomDoc" SIZE="5" MAXLENGTH="5"><P>
  16.  <tr><BR> Конт телефон:<BR> <INPUT TYPE="text" NAME="Telephon" SIZE="15" MAXLENGTH="15"><P>
  17.  <tr> <BR> Допуск:<BR> <INPUT TYPE="text" NAME="Dopusk" SIZE="3" MAXLENGTH="3"><P>
  18.  <tr> <BR> Со страницы:<INPUT TYPE="text" NAME="StartPage" SIZE="5" MAXLENGTH="5">
  19.  <tr>  по страницу:<INPUT TYPE="text" NAME="EndPage" SIZE="5" MAXLENGTH="5"><P>
  20.   <BR> Основание:<BR> <INPUT TYPE="text" NAME="Osnovanie" SIZE="50" MAXLENGTH="100">
  21. </table>
  22. <input type="submit" class="buttons" value="Оставить заявку" />
  23.  
  24. </form>
  25.  
  26. </body>
  27. </html>


Запрос на PHP:
PHP:
скопировать код в буфер обмена
  1. $username = "root";          
  2. $password = "123";          
  3. $database = "el_secretariat";
  4.  
  5. $FIO =  trim($_POST['FIO']);
  6. $NomDoc =  trim($_POST['NomDoc']);
  7. $Telephon =  trim($_POST['Telephon']);
  8. $StartPage =  trim($_POST['StartPage']);
  9. $EndPage =  trim($_POST['EndPage']);
  10. $Osnovanie =  trim($_POST['Osnovanie']);
  11. $FIO = addslashes($_POST['FIO']);
  12. $NomDoc = addslashes($_POST['NomDoc']);
  13. $Telephon = addslashes($_POST['Telephon']);
  14. $StartPage = addslashes($_POST['StartPage']);
  15. $EndPage = addslashes($_POST['EndPage']);
  16. $Osnovanie = addslashes($_POST['Osnovanie']);
  17.  
  18. @mysql_pconnect($hostname, $username, $password) or die("Could not connect to MySQL server!");
  19. @mysql_select_db($database) or die("Could not select company database!");
  20. mysql_query('SET NAMES utf8');
  21. print "Вы подключены к базе данных MySQL!<br>";
  22.  
  23.  
  24.  
  25.  
  26. $result = mysql_query ("INSERT INTO zayavka_tbl VALUES ('0', '".$FIO."', '".$NomDoc."', '".$Telephon."', '".$StartPage."', '".$EndPage."', '".$Osnovanie."')");
  27.  
  28. if ($result)
  29.   echo "Добавлено в базу данных.";
  30.  mysql_close ($connect);
  31. ?>



и почему это все не работает????
 
 Top
LIME
Отправлено: 03 Мая, 2013 - 12:11:26
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




phpfaq.ru/debug
 
 Top
KingStar
Отправлено: 03 Мая, 2013 - 12:15:25
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




потому что поле Nom имеет значение AUTO_INCREMENT, а ты его пытаешься занести как 0



его не обязательно указывать, вот так должно

PHP:
скопировать код в буфер обмена
  1. $result = mysql_query ("
  2. INSERT INTO
  3.  zayavka_tbl
  4. (
  5.          FIO,
  6.          NomDoc,
  7.          Telephon,
  8.          Dopusk,
  9.          StartPage,
  10.          EndPage,
  11.          Osnovanie
  12. ) VALUES (
  13.          '".$FIO."',
  14.          '".$NomDoc."',
  15.          '".$Telephon."',
  16.          '".$StartPage."',
  17.          '".$EndPage."',
  18.          '".$Osnovanie."'
  19. )");


-----
То что программа работает, не означает что она написана правильно!
 
 Top
snikers987
Отправлено: 03 Мая, 2013 - 14:43:30
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




KingStar пишет:
его не обязательно указывать, вот так должно


в данном случае достаточно указать просто NULL вместо '0'

(Отредактировано автором: 03 Мая, 2013 - 14:44:13)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB