如何使用PHP脚本将组合框和单选按钮值存储到mysql数据库?

时间:2013-12-30 06:59:16

标签: php html mysql

我正在尝试使用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>"; 

    }
?>

4 个答案:

答案 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);