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

Форум PHP

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

 

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

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

тема: запись в БД
 
 автор: usa   (06.12.2011 в 21:12)   письмо автору
 
 

Дорогие друзья!
Вывожу информацию об организации, которую можно изменить
Первый файл
<form action="pu_action.php" method="get" name="f2">
<p>Заметили неточность - сообщите об ошибке!</p>
<input type='hidden' name='title' value='<?php echo $myrow3['title']; ?>'>
<input type='hidden' name='id_pu' value='<?php echo $myrow3['id']; ?>'>
<input type='submit' name='submit' value='Сообщить'></form>

Выводим значения организации, которые можно редактировать
Файл pu_action.php
<form name="add" method='post' action='pu_add.php'>
<table width="750" cellspacing="5" cellpadding="5">
 <tr>
  <td width="200" valign="top"><b>Название организации:</b></td>
  <td width="550" align="left" style='background-color:#f0f0f0'>
   <input value= "<?php echo $_GET['title']; ?>" type="text" name="title" size="80" style='border:1px solid red'>
   <p class=sm><i>Например:</i> "Профессиональное училище № 29 п. Вурнары"</p>
  </td>
 </tr>
</table>
<input name="id" type="hidden" value="$myrow[id_pu]">
<p>
     <label>
     <input type="submit" name="submit" id="submit" value="Сохранить изменения">
Организация будет добавлена после проверки редактором портала.
     </label>
   </p>
</form>

Файл pu_add
if  (isset($_POST['title']))        
 {$title = $_POST['title']; if ($title == '') {unset ($title);}  }
....
<?php 
if (isset($title))
{
/*Здесь мы пишем, что можно заносить информацию в базу*/
$result mysql_query ("INSERT INTO bd (title) VALUES ('$title)");
if (
$result == 'true') {echo "<p>добавлен!</p>";}
else {echo 
"<p>не добавлен!</p>";}
}     
else 
{
echo 
"<p>Вы ввели не всю информацию, поэтому информация не может быть добавлена в базу</p>";
}
?>

Вроде все верно сделал. Но данные никак не записываются."Вы ввели не всю информацию, поэтому информация не может быть добавлена в базу".
Проблема видно может с передачей id?

  Ответить  
 
 автор: cheops   (06.12.2011 в 22:19)   письмо автору
 
   для: usa   (06.12.2011 в 21:12)
 

Попробуйте вывести дамп массива $_POST - в нем элемент title заполнен?
<?php
  
echo "<pre>";
  
print_r($_POST);
  echo 
"</pre>";
?>

  Ответить  
 
 автор: usa   (06.12.2011 в 22:49)   письмо автору
 
   для: cheops   (06.12.2011 в 22:19)
 

Выводятся следующие значения
[title] => Профессиональный Лицей
[id] => $myrow[id]

Вот это смущает, не конкретная величина разве должна выводится?
[id] => $myrow[id]

  Ответить  
 
 автор: Sfinks   (06.12.2011 в 23:26)   письмо автору
 
   для: usa   (06.12.2011 в 22:49)
 

Само собой не должна. У вас же имя переменной написано прямо в хтмл-коде. Исправьте в файле pu_action.php
<input name="id" type="hidden" value="$myrow[id_pu]">
на
<input name="id" type="hidden" value="<?php echo $myrow["id_pu"]; ?>">

  Ответить  
 
 автор: usa   (07.12.2011 в 00:03)   письмо автору
 
   для: Sfinks   (06.12.2011 в 23:26)
 

вот оно что! Тогда получаем:
[title] => Профессиональный Лицей 
[id] => 

Id пусто. Где оно могло потеряться? Поэтому данные и не заносятся в БД
Добавил в файле pu_add
if  (isset($_POST['id_pu']))          
{$id_pu = $_POST['id_pu']; if ($id_pu == '') {unset ($id_pu);}}
...
if (isset($title) & isset($id_pu))
...
$result = mysql_query ("INSERT INTO bd (title,id_pu) VALUES ('$title', '$id_pu')

И все равно id_pu пустое

  Ответить  
 
 автор: usa   (07.12.2011 в 13:19)   письмо автору
 
   для: usa   (07.12.2011 в 00:03)
 

Неужели никто не знает?

  Ответить  
 
 автор: Lotanaen   (07.12.2011 в 13:25)   письмо автору
 
   для: usa   (07.12.2011 в 13:19)
 

в форме значение title возьмите в кавычки

<input value= '"<?php echo $_GET['title']; ?>"' type="text" name="title" size="80" style='border:1px solid red'>


и сточка
<input name="id" type="hidden" value="<?php echo $myrow["id_pu"]; ?>">

должна быть такой наверное :
<input name="id" type="hidden" value="<?php echo $_GET["id_pu"]; ?>">

  Ответить  
 
 автор: Aidaho   (07.12.2011 в 13:28)   письмо автору
 
   для: usa   (07.12.2011 в 13:19)
 

Может все же стоит написать так:

  <input value= "<?php echo $_GET['title']; ?>" type="text" name="title" size="80" style='border:1px solid red'>
 
<input name="id" type="hidden" value="<?php echo $_GET['id_pu']; ?>"> 

  Ответить  
 
 автор: usa   (07.12.2011 в 14:04)   письмо автору
 
   для: Aidaho   (07.12.2011 в 13:28)
 

Спасибо.
<input name="id" type="hidden" value="<?php echo $_GET['id_pu']; ?>">

Это работает!
Но:
Вы ввели не всю информацию, поэтому информация не может быть добавлена в базу
Array
(
    [title] => Профессиональный Лицей 
    [id] => 1
    [submit] => Сохранить изменения
)

  Ответить  
 
 автор: Aidaho   (07.12.2011 в 14:16)   письмо автору
 
   для: usa   (07.12.2011 в 14:04)
 

Тогда видать ошибка при добавлении в базу. Сделайте
$result = mysql_query ("INSERT INTO bd (title) VALUES ('$title)") or die(mysql_error()); 

  Ответить  
 
 автор: Sfinks   (07.12.2011 в 15:26)   письмо автору
 
   для: Aidaho   (07.12.2011 в 14:16)
 

Вот тут почему у вас
$id_pu = $_POST['id_pu'];
когда
Array 

    [title] => Профессиональный Лицей  
    [id] => 1 
    [submit] => Сохранить изменения 
)
Думаю все-таки
$id_pu = $_POST['id'];

  Ответить  
 
 автор: Valick   (07.12.2011 в 15:29)   письмо автору
 
   для: Sfinks   (07.12.2011 в 15:26)
 

$id_pu = $_POST['id_pu']; правильно
просто в форме ошибочка была, хотя тут много напутано)
там не только в этом дело, смотрите соседнюю тему, это уже исправили там

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

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