我正在尝试使用php脚本将数据插入到mysql数据库中。 我插入了文本框值,例如:fname,lname,email和pwd。 在这种情况下,我有2个问题。第一个是我不能为变量分配并存储组合框和单选按钮值。 第二个是如何将组合框的值分别存储为数据库中的月,日和年。我怎样才能做到这一点? 我的数据库属性为:“ fname,lname,userpasswd,username,bdate,sex ” 谢谢!
这是我的注册表格的快照
<form name="signup" action="actions/registeruser.php" method="POST" onsubmit="return validate()">
<input type="text" placeholder="First Name" name="fname">
<input type="text" placeholder="Last Name" name="lname">
<input type="text" placeholder="Your Email" maxlength="30" size="45" name="email">
<input type="password" placeholder="password" maxlength="15" size="45" name="pwd">
<select name="month" size="">
<option>Month</option>
<option>jan</option>
<option>feb</option>
<option>mar</option>
</select>
<select name="Day" size="">
<option>Day</option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<select name="Year" size="">
<option>Year</option>
<option>2013</option>
<option>2012</option>
<option>2011</option>
</select><br /><br />
<input type="radio" name="sex" checked="checked">Male
<input type="radio" name="sex" >Female
<input type="submit" value="Sin Up" >
</form><hr width="2">
这是'registeruser.php'文件的快照
<?php
session_start();
$dbhost="localhost";
$dbuser="root";
$dbpass="";
$tablename="users";
//connect the server & select database
$conn=mysql_connect($dbhost, $dbuser, $dbpass)or die("cannor connect");
mysql_select_db('fb')or die("cannort select DB");
// user details sent from FORM
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$password=$_POST['pwd'];
$mail=$_POST['email'];
//Register Students
$sql="INSERT INTO $tablename(fname, lname, userpasswd, usermail)values('$fname','$lname', '$password','$mail')";
$result=mysql_query($sql);
if($result){
echo "<font size='+1' color='blue'> $fname, Successfully Registered.</font>";
}
else
{
echo "<font size='+1' color='red'>Registration Failed.</font>";
}
?>
答案 0 :(得分:2)
您需要在'选项'中添加'value'属性。 对于“月”选项,它应该是这样的
<option value="">Month</option>
<option value="01">jan</option>
<option value="02">feb</option>
<option value="03">mar</option>
对于“日”选项,它应该是这样的
<option value="">Day</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
而且,对于“年”选项,它应该是这样的
<option value="">Year</option>
<option value="2013">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
对于单选按钮,您还需要添加“值”属性
<input type="radio" name="sex" value="male" checked="checked">Male
<input type="radio" name="sex" value="female" >Female
在PHP端,你可以像这样获得POST数据
$date = $_POST["Year"] . "-" . $_POST["month"] . "-" . $_POST["Day"];
$sex = $_POST["sex"];
答案 1 :(得分:0)
要在MySQL数据库中存储日期,您需要使用以下内容连接各个年,月和日字段:
$date = sprintf("%04d%02d%02d", $year, $month, $day);
这将生成一个类似20130805
结构的日期,这是MySQL期望日期的方式,您可以随后将其存储在bdate
字段中。
至于将select
元素的值传递给PHP - 请不要忘记为每个value
元素设置option
属性。
答案 2 :(得分:0)
对于字段fname,lname,password和email,在表中选择nvarchar并按它们的实际值存储它们。但是对于字段bdate,sex,我建议定义datetime和tinyint。
在您的应用程序中,您可以使用JQuery jui datetime picker作为您的bdate,而对于您正确的字段性别。用户提交表单后,您必须通过以下方式转换日期时间:
$bdate=date(Y-m-d h:m:s,$_POST['bdate']);
并且对于性别字段,只需将其值存储为整数值,如下所示:
$sex=$_POST['sex'];
答案 3 :(得分:0)
亲爱的朋友,第一个问题的答案就是你将这三个独立的领域合并成一个变量:
$date = $_POST['Year'].':'.$_POST['month'].':'.$_POST['Day'];
现在您将获得格式的日期,例如:'2013:jan:1'。您可以将它存储在mysql数据库的文本字段或字符串字段中。要将它存储在mysql的日期类型列中,您需要对日期变量进行一些格式化。
现在为了让性别变得非常简单:
$gender = $_POST['sex'];
现在确保mysql数据库中的'bday'ans'sex'列为字符串类型或字符类型。 (bday的大小至少为10,性别的大小为6)。
因此registeruser.php可以修改为:
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$password=$_POST['pwd'];
$mail=$_POST['email'];
$bdate = $_POST['Year'].':'.$_POST['month'].':'.$_POST['Day'];
$gender = $_POST['sex'];
//Register Students
$sql="INSERT INTO $tablename(fname, lname, userpasswd, usermail,bdate,sex)values('$fname','$lname', '$password','$mail','$bdate','$gender')";
$result=mysql_query($sql);