Запись данных из выпадающего списка в базу PGSQL

DuklonuyS

Новичок
Ситуация такая.... Есть общая таблица с полями для заполнения (infa), также еще доп. таблицы с возможным выбором комнат (room), еще поля для заполнения (ФИО, ИП, Серийник моника и монитора).
Суть в том, что заполняются только те поля, что вписал "с клавы (ФИО, ИП...)" поля выбора комнаты не передаются и пишет вот это...
Notice: Undefined index: room in /usr/local/apache2/htdocs/dobavit.php on line 5
Подскажите что исправить...
вот код add.php:
PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>add</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
    <form action="dobavit.php" method="POST">
<table><td>
<?php
    include "connect.php";
$result = pg_query("SELECT data FROM room order by data asc");
$table = "<select>";

while ($row = pg_fetch_assoc($result))
     
{
    $table .= "<option value>".$row['data']." </option>";
}
$table .= "</select>";
echo $table;


$result = pg_query("SELECT data FROM mon_model order by data asc");
        $table = "<select>";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>";
}
        $table .= "</select>\n";
        echo $table;
                $result = pg_query("SELECT data FROM mb order by data asc");
        $table = "<select>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
?><?php
        $table .= "</select>\n";
        echo $table;
                $result = pg_query("SELECT data FROM cpu order by data asc");
        $table = "<select>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;   
                $result = pg_query("SELECT data FROM video order by data asc");
        $table = "<select>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;
                ?></td><td>
                <?php
                $result = pg_query("SELECT data FROM hdd1 order by data asc");
        $table = "<select>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;
$result = pg_query("SELECT data FROM hdd2 order by data asc");
        $table = "<select>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;
                $result = pg_query("SELECT data FROM hdd3 order by data asc");
        $table = "<select>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;
                $result = pg_query("SELECT data FROM ram order by data asc");
        $table = "<select value>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;
                ?>
                                 

<?php   

                ?>
                </td>
    <td> ФИО:          <input type="text" name="fio" />
      IP адрес:        <input type="text" name="ip" />
  S/N системника:    <input type="text" name="sn_sys" />
      S/N монитора:      <input type="text" name="sn_mon" /></td></table>
    <input type="submit" name="submit" />
    </form>
    <form>
        <br>
   
    </form>
</body>
</html>


Код обработчика:
PHP:
<?php
    include 'connect.php';
pg_query("INSERT INTO infa (room,fio,sn_sys,sn_mon,mon_model,mb,cpu,ram,video,hdd1,hdd2,hdd3,ip) VALUES
    ('".$_REQUEST['room']."','".$_REQUEST['fio']."','".$_REQUEST['sn_sys']."','".$_REQUEST['sn_mon']."',
        '".$_REQUEST['mon_model']."','".$_REQUEST['mb']."','".$_REQUEST['cpu']."','".$_REQUEST['ram']."',
            '".$_REQUEST['video']."','".$_REQUEST['hdd1']."','".$_REQUEST['hdd2']."','".$_REQUEST['hdd3']."',
                '".$_REQUEST['ip']."')");

?>
 
Последнее редактирование:
http://phpfaq.ru/debug

Hint:
Используй кнопку "Код" в Редакторе для нормального оформления кода (с форматированием и подсветкой синтаксиса) – иначе никто твою вырвиглазно заболденную лапшу читать не будет точно.
Да ещё и с кучей левогозакомментированного кода.
 
http://phpfaq.ru/debug

Hint:
Используй кнопку "Код" в Редакторе для нормального оформления кода (с форматированием и подсветкой синтаксиса) – иначе никто твою вырвиглазно заболденную лапшу читать не будет точно.
Да ещё и с кучей левогозакомментированного кода.
сори..
 
Счас чё, иметь хоть базовые знания HTML web-разработчикам уже не нужно?

У тебя текстовые поля имеют атрибут name:
<input type="text" name="fio" />
<input type="text" name="ip" />
<input type="text" name="sn_sys" />

Вот такие же атрибуты нужно добавить в списки <select>:
<select name="room">...</select>
<select name="mon_model">...</select>
...
и так для всех списков.
 
Счас чё, иметь хоть базовые знания HTML web-разработчикам уже не нужно?

У тебя текстовые поля имеют атрибут name:
<input type="text" name="fio" />
<input type="text" name="ip" />
<input type="text" name="sn_sys" />

Вот такие же атрибуты нужно добавить в списки <select>:
<select name="room">...</select>
<select name="mon_model">...</select>
...
и так для всех списков.
Еще вопрос... если этот кусок вносить в раздел HTML то зачем делать еще выбор если он не нужен????
А вот если в раздел PHP то ошибки ушли, но по прежнему не добавляет...
Вот пример:
PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>add</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
    <form action="dobavit.php" method="POST">
<table><td>
<?php
    include "connect.php";
$result = pg_query("SELECT data FROM room order by data asc");
$table = "<select name='room'>";

while ($row = pg_fetch_assoc($result))
     
{
    $table .= "<option value>".$row['data']." </option>";
}
$table .= "</select>";
echo $table;


$result = pg_query("SELECT data FROM mon_model order by data asc");
        $table = "<select name='mon_model'>";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>";
}
        $table .= "</select>\n";
        echo $table;
                $result = pg_query("SELECT data FROM mb order by data asc");
        $table = "<select name='mb'>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
?><?php
        $table .= "</select>\n";
        echo $table;
                $result = pg_query("SELECT data FROM cpu order by data asc");
        $table = "<select name='cpu'>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;   
                $result = pg_query("SELECT data FROM video order by data asc");
        $table = "<select name='video'>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;
                ?></td><td>
                <?php
                $result = pg_query("SELECT data FROM hdd1 order by data asc");
        $table = "<select name='hdd1'>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;
$result = pg_query("SELECT data FROM hdd2 order by data asc");
        $table = "<select name='hdd2'>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;
                $result = pg_query("SELECT data FROM hdd3 order by data asc");
        $table = "<select name='hdd3'>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;
                $result = pg_query("SELECT data FROM ram order by data asc");
        $table = "<select  name='ram'>\n";
        while ($row = pg_fetch_assoc($result))
{
    $table .= "<option selected value>".$row['data']." </option>\n";
}
        $table .= "</select>\n";
        echo $table;
                ?>
                                 

<?php   

                ?>
                </td>
    <td> ФИО:          <input type="text" name="fio" />
      IP адрес:        <input type="text" name="ip" />
  S/N системника:    <input type="text" name="sn_sys" />
      S/N монитора:      <input type="text" name="sn_mon" /></td></table>

    <input type="submit" name="submit" />
    </form>
    <form>
        <br>
   
    </form>
</body>
</html>
 
Вот как так можно составлять вопросы:
если этот кусок вносить в раздел HTML то зачем делать еще выбор если он не нужен????
А вот если в раздел PHP то ошибки ушли
Ну хоть какая-то логика, не знаю, сцепка между предложениями, должна быть?! не говоря уже о том, что сами предложения должны быть законченными.


Научись настраивать debugger в своём редакторе, он тебе столько всего полезного покажет.
Например то, что всякие там $_REQUEST['hdd1'] у тебя поступают пустыми.
Я, конечно, не дебажил, но судя по
$table .= "<option selected value>".$row['data']." </option>\n";
так оно и есть.
Ты ведь, когда писал атрибуты тэга "option", давал себе отчёт, зачем ты их пишешь?

PHP:
pg_query("INSERT INTO infa (...) VALUES
('".$_REQUEST['room']."','".$_REQUEST['fio']."','".$_REQUEST['sn_sys']."','".$_REQUEST['sn_mon']."', ......
А ты в курсе про http://phpfaq.ru/slashes ?
И на примечание в низу обрати внимание.
 
Последнее редактирование:
Ты ведь, когда писал атрибуты тэга "option", давал себе отчёт, зачем ты их пишешь?
Для того чтобы сделать выпадающий список не методом ручного написания вариантов выбора типа
HTML:
<select>
  <option>Пункт 1</option>
  <option>Пункт 2</option>
</select>
а для того, чтоб эти варианты брались из таблицы POSGRESQL.
Трабл в том, что не понимаю как сделать выбранный вариант переменной и отправить в обработчик...
 
Трабл в том, что не понимаю как сделать выбранный вариант переменной и отправить в обработчик...
Трабл в том, что ты не понимаешь, что делаешь – и потому пытаешься править код просто методом тыка.
О работе с формами знаний практически нет – потому приобретай их.
 
Для того чтобы сделать выпадающий список...
Не правильный ответ.

Для этого
Для того чтобы сделать выпадающий список не методом ручного написания вариантов выбора типа
ты написал
Код:
<select>
  <option>Пункт 1</option>
  <option>Пункт 2</option>
</select>

А потом ты к тегам <option> добавил атрибуты "selected value".
Не просто же так ты их написал, они же что-то значат.
 
Andkorol, пример для обучения, конечно, тот ещё )
echo '...';
echo '...';
echo '...';
echo '...';
+
echo "<p><b>".$_POST['textfield']."</b></p>";
 
riff, как пример для понимания принципов работы с элементами HTML-форм – вполне нормальный пример, бездумно копипастить оттуда код никто не предлагает.
Знаешь пример получше – предложи.
Очевидно же, что ТС в этом вопросе плавает – поэтому ему любой пример с комментариями будет полезен.
 
Сверху