我有一个注册表格。一旦我创建了一个表单,数据就会在登录表单后插入到注册表中,我需要填写一些细节并通过比较邮件ID插入到相同的列中。但是,当我试图插入数据时,它显示为未插入数据库。
dashboard.php:
<form method="post" action="personalinfo.php" id="myform">
<input type='hidden' value="<?php echo $_GET['email'];?>" name='email'>
<div>
<label for="first-name">First Name<span class="mandatory">*</span></label>
<input id="first-name" type="text" name="first-name" value="" />
</div>
<button type="submit" id = "submit" class="btn btn-success btn-block"><span class="glyphicon glyphicon-off"></span> Save</button>
personalinfo.php:
<?php
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
$db = mysql_select_db("accountant", $connection);
$email=$_POST['email'];
$firstname = $_POST['first-name'];
$query = mysql_query("INSERT INTO registered (first-name)
values ('$firstname') SELECT email FROM registered WHERE email!='$email' ");
mysql_query("$query") OR die("Error:".mysql_error());
if($query)
{
echo "Successfully Registered";
}
else{
echo "Registration has not been completed.Please try again";
}
?>
如果我使用mysql_error,则显示为查询为空。
答案 0 :(得分:2)
登录表格后我需要填写一些细节
根据此行,这意味着您要更新同一行中的名字。您可以使用此查询。
(在评论和其他答案中也提及)
UPDATE registered SET first-name = '$firstname' WHERE email = '$email'
其他问题:
您的代码中还有其他一些问题:
mysql_*
扩展程序已弃用,请使用mysqli_*
或PDO
。mysql_query("$query")
它应该是mysql_query($query)
; mysql_query
。personalinfo.php
它将在您的表中插入空记录。旁注:
这只是一个建议,请使用下划线(_)
代替连字符(-)
作为表名或列名。
答案 1 :(得分:0)
请改为尝试:
$query = mysql_query("update registered set first-name = '$firstname' where email = '$email'");
答案 2 :(得分:0)
使用您的查询:
$query = mysql_query("UPDATE registered set first-name = '$firstname'
WHERE email = '$email'");
这里将把first-name值更新为$ firtname的值,其中电子邮件等于$ email值。有关详细信息,请查看此网址:http://www.w3schools.com/php/php_mysql_update.asp
答案 3 :(得分:0)
这将满足您的需求。
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
$db = mysql_select_db("accountant", $connection);
$email=$_POST['email'];
$firstname = $_POST['first-name'];
$res = mysql_query("SELECT email FROM registered WHERE email='$email");
if(!$res || mysql_num_rows($res)<1){
$query = mysql_query("INSERT INTO registered (first-name, email) values ('$firstname', '$email')") OR die("Error:".mysql_error());
// mysql_query("$query") OR die("Error:".mysql_error());
if($query)
{
echo "Successfully Registered";
}
else{
echo "Registration has not been completed.Please try again";
}
}
答案 4 :(得分:0)
试试这个:
登录后,您可以通过
插入数据$query = mysql_query("update registered set first-name = '$firstname' where email = '$email'");
答案 5 :(得分:0)
这是正确答案
<?php
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
$db = mysql_select_db("accountant", $connection);
$email=$_POST['email'];
$firstname = $_POST['first_name'];
$res = mysql_query("SELECT email FROM registered WHERE email='$email");
if(!$res || mysql_num_rows($res)<1){
$query = mysql_query("UPDATE registered SET first_name='$firstname'") OR die("Error:".mysql_error());
// mysql_query("$query") OR die("Error:".mysql_error());
if($query)
{
echo "Successfully Registered";
}
else{
echo "Registration has not been completed.Please try again";
}
}
答案 6 :(得分:0)
这是您的评论的完整答案。
<?php
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
$db = mysql_select_db("accountant", $connection);
$email=$_POST['email'];
$firstname = $_POST['first_name'];
// CHECK IF THE EMAIL IS ALREADY REGISTERED PREVIOUSLY
$res = mysql_query("SELECT email FROM registered WHERE email='$email");
if(!$res || mysql_num_rows($res)<1){ // IF NOT THEN ADD THE RECORD
$query = mysql_query("INSERT INTO registered (first_name, email) values ('$firstname', '$email')") OR die("Error:".mysql_error());
}else{ // if email already present then update the record
$query = mysql_query("UPDATE registered SET first_name='$firstname'" where email= '$email') OR die("Error:".mysql_error());
}
if($query)
{
echo "Successfully Registered";
}
else{
echo "Registration has not been completed.Please try again";
}
}