[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача текста в БД
zdmagistr
Добрый день.
Есть форма
2 раскрывающихся списка (каждый берет значение из своей таблицы mysql)
1 просто поле input

По кнопки все 3 значения уходят еще в 1 таблицу, но все замечательно, но есть но
начинаю заполнять формы, и если в input пишу не число, то
$result = mysqli_query($dbc, $query)
or die ('ошибка при выполнении запроса');

идет по выбору, что ошибка, если ставлю в input число, то все прекрасно, все заносится в БД
В базе тип стоит на этом поле varchar
Так как только начинаю, уже не знаю куда смотреть.

Спасибо.
inpost
zdmagistr
$query = "INSERT INTO `table` SET
`key` = '"
.mysqli_real_escape_string($dbc,$value)."',
`key2` = "
.(int)$value2."
"
;


Итого, для строк применяй одну функцию, а для чисел преобразовывай в число ;)

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
zdmagistr
inpost
Хм...Или я что то не так написал или понял. С 2мя списками понятно, там берется из БД и отправляется, но в инпуте может вводить пользователь по условию как число так и текст или даже то и то, мат операций производится не будет, устроит что числа запишутся как текст, но у меня сейчас выходит, что отправляется только число.
depp
на кавычки в запросе внимание обратите.
inpost
zdmagistr
Ничего не понятно. Показывай код, который это обрабатывает + объясни что не так, и как должно быть.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
zdmagistr
inpost
А вот не могли бы подсказать, в каких случаях лучше использовать <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" > т.е. не разбивать php страницу и html? А когда лучше отдельно action на отдельную страницу php?


Я сейчас сделал все в 1 файле и пхп и хтмл, но логика показывает, что получилось коряво, тк использовал таблицы в них вставлял формы, аж стыдно показывать

Подскажите нерадивому, ибо первый проект, может все ж отделить в 2 файла, или как то переструктурировать код, какие замечания, может начнут с этого выправляться руки
А проблема в том, что когда отправляю форму, если отправляю в таблицу card значение в laptop, то принимает только число, если текст или число+текст, то идет по ветке or и говорит, что ошибка при выполнении запроса

Код
<html>
<
head>
<
title>Учет оборудования</title>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</
head>
<
body>
<?php



echo '<table width="100%" border="2">';
echo ' <tr >';
echo ' <td colspan="2">';
echo ' <h1><center>Заполнить карточку кабинета</center></h1>';
echo '</td>';
echo ' </tr>';
echo ' <tr valign="top">';
echo ' <td width="20%" rowspan="2">' ;
include("menu.php");
echo ' </td>';
echo ' <td>Карточка<br />';
echo 'Фамилия ' ;

?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >

<
select name="lastname" size="1">
<?php
$dbc = mysqli_connect('localhost', 'root', '104722', 'inventory')
or die ('Ошибка подключения к БД');
$query = "select * from personal ORDER BY name";
$result = mysqli_query($dbc,$query)
or die ('ошибка при выполнении запроса');
while ($row = mysqli_fetch_array($result)){
echo '<option value="'.$row['name'].'">' . $row['name'] . '</option>';
}
?> </select>
<?php


echo '<br /> Кабинет ';

?>
<select name="kabinet" size="1">
<?php
$dbc = mysqli_connect('localhost', 'root', '104722', 'inventory')
or die ('Ошибка подключения к БД');
$query = "select * from workroom ORDER BY room";
$result = mysqli_query($dbc,$query)
or die ('ошибка при выполнении запроса');
while ($row = mysqli_fetch_array($result)){
echo '<option value="'.$row['Room'].'">' . $row['Room'] . '</option>';
}
?> </select>
<?php


echo '<br />';

?>
<label for="Laptop">Ноутбук</label>
<
input id="Laptop" name="Laptop" type="text" /><br />

<
input type="submit" value="Добавить" name="add" />

</
form>
<?php
$laptop = $_POST['Laptop'];
$kabinet = $_POST['kabinet'];
$lastname = $_POST['lastname'];
$dbc = mysqli_connect('localhost', 'root', '104722', 'inventory')
or die ('Ошибка подключения к БД');
$query = "INSERT INTO card (personal, room, laptop)".
"VALUES ('$lastname', '$kabinet', $laptop )";
$result = mysqli_query($dbc, $query)
or die ('ошибка при выполнении запроса');
mysqli_close($dbc);
echo 'Сохранено';

echo ' </td>';
echo ' <tr>';
?>
<body>
<
html>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.