|
|
|
| Всем привет!
Вот столкнулся с такой проблемой и пока не знаю её решения.
У меня есть форма для заполнения, в которой участвует дата, которую нужно указать в след. формате: месяц/день/год. Работа осуществляется с СУБД MS SQL. Так вот скажите, как мне необходимо правильно написать синтаксис, чтобы я смог реализовать возможность передачи значения из переменных в БД.
Вот пример данного кода:
<tr><td><p class=zag2>Дата инст. ПО:</td><td><input size=1 maxlength=2 class=input type=text name=insdate value=`<?php echo $insdate; ?>`>
<input size=1 maxlength=2 class=input type=text name=insdate value=`<?php echo $insdate; ?>`>
<input size=3 maxlength=4 class=input type=text name=insdate value=`<?php echo $insdate; ?>`></td></tr>
|
У меня в форме три поля: для месяца/дня/года, но переменная со значением то передаётся одна $insdate.Не получится так, что переменная просто передаст последнее значение, то есть в моём случае год?
Как с этим бороться?
Или это решается посредством написания хранимых процедур в СУБД MS SQL?
Заранее спасибо! | |
|
|
|
|
|
|
|
для: Vados
(17.08.2006 в 13:48)
| |
<td><input size=1 maxlength=2 class=input type=text name=month value=`<?=$insdate[0];?>`>
<input size=1 maxlength=2 class=input type=text name=day value=`<?=$insdate[1]; ?>`>
<input size=3 maxlength=4 class=input type=text name=year value=`<?=$insdate[2]; ?>`></td>
|
перед тем как заносить $insdate=$month."/".$day."/".$year;
а перед выводом $insdate=explode("/",$insdate); | |
|
|
|
|
|
|
|
для: Vados
(17.08.2006 в 13:48)
| | Ну правильно, в одна переменная может храниьт только одно значение.
Или обзывай по-разному поля - получишь три разных переменных, или, назови их name="insdate[]" - получишь массив со значениями всех трех полей. | |
|
|
|
|
|
|
|
для: ec_stasis
(17.08.2006 в 15:30)
| | Хорошо, но где мне правильно дописать код:
$instdate=($month."/".$day."/".$year);
|
Так как данная переменная $instdate передается для проверки на вводимость полей!
Вот в таком виде:
if (!$_POST['instdate'])
{
echo "<b class=text>";echo 'Не введена дата установки сервера!';echo "</b>";exit;
}
|
Как правильно передать значение массива, чтобы всё работало?
Заранее спасибо! | |
|
|
|
|
|
|
|
для: Vados
(18.08.2006 в 15:47)
| | в данном случае лучше сделать так:
<?
if (!checkdate($month,$day,$year)) echo "Введена не коректная дата";
|
| |
|
|
|
|
|
|
|
для: P@Sol
(18.08.2006 в 16:43)
| | Хорошо, а как же значение month, day, year - передать в БД для записи? | |
|
|
|
|
|
|
|
для: Vados
(18.08.2006 в 17:02)
| | Ребята, кто-нибудь помогите! Не могу никак сделать! | |
|
|
|
|
|
|
|
для: Vados
(19.08.2006 в 10:30)
| | $insdate=$month."/".$day."/".$year и в бд записываешь уже это значение | |
|
|
|
|
|
|
|
для: P@Sol
(19.08.2006 в 11:49)
| | Так у меня ничего не выходит, так как после того, как я заполнил необходимые поля, а потом мне необходимо при передаче скрипту который обрабатывает передать эти параметры на проверку заполнений данных в форме. Как это сделать?
Я к примеру вообще проверяю вводимость данных таким образом:
if (!$_POST['instdate'])
{
echo "<b class=text>";echo 'Не введен номер шкафа!';echo "</b>";
exit();
}
|
Но так у меня ничего не передаётся, то есть не передаётся ни одно значение!
Помогите!
Спасибо! | |
|
|
|
|
|
|
|
для: Vados
(19.08.2006 в 14:26)
| | Ребята, всем привет!
Всё же так ничего не получилось, так как я не совсем понимаю, как мне правильно передать параметры массива? До передачи всех параметров - скрипту который обрабатывает значение переменных или сразу после того, как пользователь заполнит три поля: dd/mm/yyyy
Помогите разрулить ситуацию!
Заранее спасибо! | |
|
|
|
|
автор: motoP@Sol (22.08.2006 в 17:56) |
|
|
для: Vados
(22.08.2006 в 16:20)
| | приведите код, как у вас сделано. проще будет беседовать | |
|
|
|
|
|
|
|
для: motoP@Sol
(22.08.2006 в 17:56)
| | Хорошо, смотрите, вот код:
<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
$title=$titlepage = "Добавление нового сервера";
$head="Content-type: text/html; charset=koi8-r \r\n";
include "../header.php";
if(!isset($action)) $action = "addsrv.php";
?>
<html>
<head><link rel='stylesheet' type='text/css' href='../images/style.css'>
<meta http-equiv="content-type" content="text/html; charset=windows-1251"></head>
<table><tr><td>
<p class=boxmenu><a class=menu href="admin.php">Вернуться на главную страницу администрирования</a></p><br>
</td></tr></table>
<table>
<form action=<?php echo $action; ?> method=post>
<table border="0">
<tr><td><p class=zag2>Адрес:</td><td><input size=50 class=input type=text name=adress value='<?php echo $adress; ?>'></td></tr>
<tr><td><p class=zag2>№ серверной:</td><td><input size=20 class=input type=text name=srvroom value='<?php echo $srvroom; ?>'></td></tr>
<tr><td><p class=zag2>Шкаф:</td><td><input size=13 class=input type=text name=shell value='<?php echo $shell; ?>'></td></tr>
<tr><td><p class=zag2>Дата установки:</td><td><input size=1 maxlength=2 class=input type=text name=month value='<?php echo $instdate[0]; ?>'>
<input size=1 maxlength=2 class=input type=text name=day value='<?php echo $instdate[1]; ?>'>
<input size=3 maxlength=4 class=input type=text name=year value='<?php echo $instdate[2]; ?>'></td></tr>
//и так далее....
</table>
<table border="0">
<td><input type=submit method=post value='Сохранить' name="send" accept=></td> <td><input type="reset" value='Сброс'></td>
</table>
</form>
</table>
</html>
|
А потом, я передаю параметры обработчику, вот код обрабочика:
<?php
// Осуществляем соединение с базой данных
require_once("config.php");
// Проверим - достаточно ли информации для занесения в базу данных
if (!$_POST['srv'])
{links("<b class=text>Не введено имя сервера</b>");}
if (!$_POST['ip1'])
{links("<b class=text>Не введен IP адрес</b>");}
if (!$_POST['mac1'])
{links ("<b class=text>Не введен MAC адрес</b>");}
if (!$_POST['dns1'])
{links ("<b class=text>Не введено имя DNS</b>");}
// и так далее.....
// Заменяем одинарные кавычки
$_POST['note'] = str_replace("'","`",$_POST['note']);
$_POST['adress'] = str_replace("'","`",$_POST['adress']);
$qqq = 0;
// Формируем запрос
$storeProc = mssql_init('inventory.dbo.SetData');
mssql_bind($storeProc,"@srv",$_POST['srv'],SQLVARCHAR);
mssql_bind($storeProc,"@ip1",$_POST['ip1'],SQLVARCHAR);
mssql_bind($storeProc,"@mac1",$_POST['mac1'],SQLVARCHAR);
mssql_bind($storeProc,"@dns1",$_POST['dns1'],SQLVARCHAR);
mssql_bind($storeProc,"@ip2",$_POST['ip2'],SQLVARCHAR);
//и так далее......
if($result) {
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=test.php'>
</HEAD></HTML>";
}
else echo "Ошибка при добавлении сервера";
function links($msg)
{
echo "<p>".$msg."</p>";
echo "<p><a href=# onClick='history.back()'>Вернуться к правке формы</a></p>";
echo "<p><a href=admin.php>Вернуться на главную страницу администрирования</a></p>";
exit();
}
?>
|
| |
|
|
|
|
|
|
|
для: Vados
(22.08.2006 в 18:47)
| | что то, типа, того:
//файл с формой
<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
$title=$titlepage = "Добавление нового сервера";
$head="Content-type: text/html; charset=koi8-r \r\n";
include "../header.php";
if(!isset($action)) $action = "addsrv.php";
$insdate=explode("/",$insdate); //добавить эту строчку
?>
|
//обработчик
<?php
// Осуществляем соединение с базой данных
require_once("config.php");
// Проверим - достаточно ли информации для занесения в базу данных
if (!$_POST['srv'])
{links("<b class=text>Не введено имя сервера</b>");}
if (!$_POST['ip1'])
{links("<b class=text>Не введен IP адрес</b>");}
if (!$_POST['mac1'])
{links ("<b class=text>Не введен MAC адрес</b>");}
if (!$_POST['dns1'])
{links ("<b class=text>Не введено имя DNS</b>");}
if (!checkdate($_POST['$month'],$_POST['$day'],$_POST['$year'])) echo "Введена не коректная дата"; //вроде так
// и так далее.....
// Формируем запрос
$storeProc = mssql_init('inventory.dbo.SetData');
mssql_bind($storeProc,"@srv",$_POST['srv'],SQLVARCHAR);
mssql_bind($storeProc,"@ip1",$_POST['ip1'],SQLVARCHAR);
mssql_bind($storeProc,"@mac1",$_POST['mac1'],SQLVARCHAR);
mssql_bind($storeProc,"@dns1",$_POST['dns1'],SQLVARCHAR);
mssql_bind($storeProc,"@ip2",$_POST['ip2'],SQLVARCHAR);
mssql_bind($storeProc,"@ip2",$_POST['$month']."/".$_POST['$day']."/".$_POST['$year'],SQLVARCHAR); //и так ток я не видел таких запросов..второй параметр не знаю какой
//и так далее......
?>
|
| |
|
|
|