Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > отбор по id


Автор: nemiroff9999 26.12.2007, 13:41
форма добавления новой книги:
Код

<form action="add.php" method="post" name="form1" onsubmit="return test()">
<table border="1">
<tr>
<td>Название</td>
<td><input type="text" name="Name_book" maxlength="100" size="30"> </td>
</tr>
<tr>
<td>Автор</td>
<td><input type="text" name="Avtor" maxlength="100" size="30"> </td>
</tr>
<tr>
<td valign=top>Комментарий</td>
<td><p><textarea rows="7" name="Description" cols="30"></textarea></p></td>
</tr>
<tr><td>Специальность</td>
<td>
<?php
include "config.php";
$ath = mysql_query("select * from matmod;");
if ($ath)
{
echo "<p><select size='1' name='type'>";
while($types = mysql_fetch_array($ath))
{
echo "<option value=".$types['Caption']." selected>".$types['Caption']."&nbsp;</option>";
}
echo "</select></p> ";
}
?>
</td>
</tr>
<tr>
<td>Издательство</td>
<td><input type="text" name="Publishers" maxlengt="100" size="30"> </td>
</tr> 
<tr>
<td>Год издания</td>
<td><input type="int" name="Year" maxlengt="100" size="30"> </td>
</tr> 
<tr>
<td></td>
<td align=right><input type="submit"   value="Добавить"></td>
</tr>
</table>
</form>


----------add.php----------
Код

<?php
$Name_book=$HTTP_POST_VARS['Name_book'];
$Avtor=$HTTP_POST_VARS['Avtor'];
$Description=$HTTP_POST_VARS['Description'];
$Pulpit=$HTTP_POST_VARS['type'];
$Publishers=$HTTP_POST_VARS['Publishers'];
$Year=$HTTP_POST_VARS['Year'];
{
$Name_book = addslashes($Name_book);
$Avtor = addslashes($Avtor);
$Description = addslashes($Description);
$Pulpit = addslashes($Pulpit);
$Publishers = addslashes($Publishers);
$Year = addslashes($Year);

include "config.php";
$query = "insert into books (Name_book, Avtor, Description, Profession, Publishers, Year) values ('".$Name_book."','".$Avtor."','".$Description."', '".$Pulpit."','".$Publishers."','".$Year."')";
echo "<br>";
echo "<script language=\"javascript\">window.alert('".$query."');</script>";
$result = mysql_query($query);
if ($result)
   {
   echo "<br>";
   echo "<br>";
   
echo "<script language=\"javascript\">window.alert('Книга добавлена в базу данных!');</script>";
}
}
//}
?>


После ввода всех данных и выбора специальности в форме(там список из 22 элементов) я нажимаю на добавить.Запись в БД  проходит успешно, кроме специальности(Profession). Там везде нули. Как сделать чтобы после выбора специальности в поле специальность был номер(т.е. тот номер, под которым состоит книга) 

Автор: KoLiZeI 26.12.2007, 16:17
Цитата(nemiroff9999 @  26.12.2007,  13:41 Найти цитируемый пост)
while($types = mysql_fetch_array($ath))
{
echo "<option value=".$types['Caption']." selected>".$types['Caption']."&nbsp;</option>";
}


Как я понял у тебя тут каждое поля является выбранным по умолчанию, это как? Ошибка в этих параметрах скоре всего!

Автор: PrivateRayan 26.12.2007, 16:29
KoLiZeI, в этих параметрах не может быть ошибки. Поскольку selected влияет только на отображение формы, но никак на передачу.

Другое дело - что там за HTML формируется, что в скрипт передаётся, и какой запрос формируется. Но этого мы не знаем, и при всём желании не можем узнать.

Афтор. У тебя там alert с запросом. Значит, ты его видишь? А ошибку в нём? Если не видишь, то хотя бы сюда скопируй. Запрос ведь - это самое главное.

Автор: FractalizeR 27.12.2007, 20:17
Поле Profession в MySQL какого типа? Наверное, числового? Так чего же его как строку в базу вставлять?
Код

$query = "insert into books (Name_book, Avtor, Description, Profession, Publishers, Year) values ('".$Name_book."','".$Avtor."','".$Description."', '".$Pulpit."','".$Publishers."','".$Year."')";


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)