我有CREATE TABLE查询,INSERT INTO自动显示“expiry_date”列,以及我网站上的FORM。我是新手,所以我不知道如何制作表格,特别是“expiry_date”字段将数据发送到我的数据库。
请告诉我如何将“Expiry_date”表单字段连接到SQL QUERY。我有3个部分向您展示我已经完成的工作。
第1部分
CREATE TABLE `expirydate_table` (
`id` INT NOT NULL AUTO_INCREMENT ,
`firstname` VARCHAR( 45 ) NOT NULL ,
`lastname` VARCHAR( 45 ) NOT NULL ,
`email` VARCHAR( 45 ) NOT NULL ,
`password` VARCHAR( 12 ) NOT NULL ,
`signup_date` TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP DEFAULT
CURRENT_TIMESTAMP NOT NULL ,
`expiry_date` DATE NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE (
`email`
)
) TYPE = MYISAM CHARACTER SET utf8 COLLATE
utf8_unicode_ci;
第二部分
INSERT INTO `expirydate_table` ( `id` , `firstname` , `lastname` , `email` , `password` , `signup_date` , `expiry_date` )
VALUES (
'', 'pp', 'wiraj', 'pp@hotmail.com', 'test2009', NOW( ) , DATE_ADD(CURDATE( ) , INTERVAL 30 DAY ))
第3部分
<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
<table align="center">
<tr valign="baseline">
<td nowrap align="right">Firstname:</td>
<td><input type="text" name="firstname" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Lastname:</td>
<td><input type="text" name="lastname" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Email:</td>
<td><input type="text" name="email" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Password:</td>
<td><input type="text" name="password" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Signup_date:</td>
<td><input type="text" name="signup_date" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Expiry_date:</td>
<td><input name="expiry_date" type="text" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"> </td>
<td><input type="submit" value="Register"></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1">
</form>
答案 0 :(得分:0)
您是否在考虑执行从表单提交的查询?如果是,您应该使用
您可以使用$ _POST ['nameofform']访问帖子数据,其中'nameofform'是表单的名称 你应该使用php的扩展来执行mysql查询mysqli或PDO扩展
答案 1 :(得分:0)
首先,您可以在代码中处理日期,而不是从客户端发送。最重要的是,您不希望在每次更新时更改signup_date
。所以你需要稍微调整一下你的表模式:
CREATE TABLE `expirydate_table` (
`id` INT NOT NULL AUTO_INCREMENT ,
`firstname` VARCHAR( 45 ) NOT NULL ,
`lastname` VARCHAR( 45 ) NOT NULL ,
`email` VARCHAR( 45 ) NOT NULL ,
`password` VARCHAR( 12 ) NOT NULL ,
`signup_date` DATETIME NOT NULL,
`expiry_date` DATETIME NOT NULL,
PRIMARY KEY (`id`) ,
UNIQUE (`email`)
)
话虽如此,您可以删除表单中的signup_up
和expiry_date
字段。
然后你需要创建一个动作php脚本来处理提交的值。 它可能看起来像这样:
<?php
//make sure that everything has been submitted
if (isset($_POST['firstname']) &&
isset($_POST['lastname']) &&
isset($_POST['email']) &&
isset($_POST['password'])) {
//do your cleanup and checks here
$firstname = trim($_POST['firstname']);
$lastname = trim($_POST['lastname']);
$email = trim($_POST['email']);
$password = $_POST['password'];
//construct an INSERT statement
$qry = 'INSERT INTO `expirydate_table` (`firstname` , `lastname` , `email` , `password` , `signup_date` , `expiry_date` ) VALUES (';
$qry .= '"' . $firstname . '", ';
$qry .= '"' . $lastname . '", ';
$qry .= '"' . $email . '", ';
$qry .= '"' . $password . '", ';
$qry .= 'NOW(), ';
$qry .= 'DATE_ADD(NOW(), INTERVAL 30 DAY))';
//open connection to db
$db = new mysqli('db_host', 'db_user', 'db_pwd', 'db_name');
//execute your INSERT statement
if ($db->query($qry) == TRUE) {
if ($db->insert_id) {
$id = $db->insert_id;
}
} else {
//add your error handling here
}
//render your page, use $id if you need to
}
?>
这绝对不是你需要做的所有事情。 你最好,至少: