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

Форум PHP

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

 

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

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

тема: Формы
 
 автор: Claster   (04.05.2009 в 22:07)   письмо автору
 
 

Здравствуйте.

В PHP я новичок, и надеюсь на помощь с этого форума.

Имеется такой скрипт файла 1:
<?php
 
echo "<form action='catalog.php' method='POST'>
   <p>Добавить разрешение: <input type='text' name='dpi'></p>
   <p>Добавить цену: <input type='text' name='price'></p>
   <p>Добавить пояснения: <textarea name='note' rows='10' cols='60'></textarea></p>
   <input type='button' name='buta' value='добавить разрешение в каталог'>
  </form>"
;
?>


И, убирая всё лишнее, имеется второй файл с частью таким скриптом:
<?php
require_once("../config.php");
mysql_query ('INSERT INTO dpi VALUES (NULL,
".$_POST['
dpi'].",
".$_POST['
note'].",
".$_POST['
price'].",
NULL); '
);
?>


Данные в форму не передаются. А точнее функция mysql_query работает как положено, но без передачи данных из формы.
То есть:
mysql_query ('INSERT INTO dpi VALUES (NULL, значение 1, "значение 2", значение 3, NULL) ');


А как раз данные из формы в базу данных не попадают.

Даже проверяя банальную вещь, не выходит ничего. Например:
В первом файле та же форма:
<form action='catalog.php' method='POST'>
   <p>Добавить разрешение: <input type='text' name='dpi'></p>
   <p>Добавить цену: <input type='text' name='price'></p>
   <p>Добавить пояснения: <textarea name='note' rows='10' cols='60'></textarea></p>
   <input type='button' name='buta' value='добавить разрешение в каталог'>
  </form>


А во втором:
<?php
echo $_POST['dpi'];
echo 
$_POST['price'];
echo 
$_POST['note'];
?>


Как я понимаю, по щелчку на кнопке должны быть выведены в документ все значения из формы. Но никакой ракции на действие нет. Не подскажите, в чём тут дело?

  Ответить  
 
 автор: Trianon   (04.05.2009 в 22:35)   письмо автору
 
   для: Claster   (04.05.2009 в 22:07)
 


<?php
require_once("../config.php");
mysql_query ('INSERT INTO dpi VALUES (NULL,
".$_POST['
dpi'].",
".$_POST['
note'].",
".$_POST['
price'].",
NULL); '
);
?> 


Исправьте кавычки в параметре mysql_query.
И включите диагностику ошибок
error_reporting(E_ALL|E_NOTICE);
как минимум, пока новичок.

Я допускаю, правда, что этот оператор Вы не скопировали из текста, а набрали руками.
Тогда всё еще хуже.

  Ответить  
 
 автор: Claster   (05.05.2009 в 07:56)   письмо автору
 
   для: Trianon   (04.05.2009 в 22:35)
 

E_ALL и E_NOTICE включены, но тем не менее ошибок не выдаётся. Данные из формы в любом случае не передаются.

А кавычки постараюсь разобраться как верно задать, спасибо.

  Ответить  
 
 автор: Trianon   (05.05.2009 в 08:30)   письмо автору
 
   для: Claster   (05.05.2009 в 07:56)
 

Ваш оператор mysql_query, который я процитировал, выдает
Parse error: syntax error, unexpected T_STRING in файл.php on line 4
Совершенно справедливо выдает.

  Ответить  
 
 автор: ДЕМ(универ)   (05.05.2009 в 15:12)
 
   для: Claster   (05.05.2009 в 07:56)
 

<?php 
mysql_query 
('INSERT INTO dpi VALUES (NULL, 
'
.$_POST['dpi'].', 
'
.$_POST['note'].', 
'
.$_POST['price'].', 
NULL)'
); 
?>  

кавычки верно так

  Ответить  
 
 автор: Claster   (05.05.2009 в 21:19)   письмо автору
 
   для: ДЕМ(универ)   (05.05.2009 в 15:12)
 

Trianon,

Я понял почему. Глупая ошибка была: button-кнопка вместо submit.


ДЕМ(универ),

Да, спасибо большое. Я так и переделал.

И в связи с этим решаю другую возникшую проблему.
Вывожу данные таким массивом:

echo "<table>";
   ...
$r = mysql_query("SELECT * FROM dpi");
for ($i=0; $i<mysql_num_rows($r); $i++)
 {
  echo "<tr>";
  $f=mysql_fetch_array($r);
  echo "<td> $f[dpi] </td>";
  echo "<td> $f[note] </td>";
  echo "<td> $f[price] </td>";
  echo "</tr>";
}
echo "</table>";


Однако данные выводятся только в столбце "note".
Вы не подскажите в чём тут дело?

  Ответить  
 
 автор: Trianon   (05.05.2009 в 21:59)   письмо автору
 
   для: Claster   (05.05.2009 в 21:19)
 

в структуре таблицы, очевидно...

  Ответить  
Rambler's Top100
вверх

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