我是mysql的新手,无法插入字段。我创建了一个登录表单和一个主页表单供用户输入个人详细信息。登录表单提交给mysql数据库罚款,但个人详细信息表单拒绝提交;只有当我指定与第一个表单相同的字段时,表单才会提交。显然,我想在第二种形式中添加新数据,我希望有关组织数据库的提示,该数据库由一个表profile
组成。它存储每个用户的信息,包括字段:id
,username
,password
,avatar
,location
,goal
等。
感谢您的帮助&忍耐。我将最终将两个表单中的信息组合成一个用户记录。但是,现在,我想知道为什么没有创建新条目或显示错误信息,即使我的错误显示已打开。
编辑::抱歉不包括整个代码
loginform.php
(工作正常)
<?php
require("connect.php");
session_start();
$query = "SELECT * FROM `profile`";
if ($query_run=mysqli_query($cnn,$query))
{
echo "
<h1>Sign up for Runners World</h1>
<form action='' method='post'>
Username: <input type='text' name='username'><br>
Email: <input type='text' name='email'><br>
Password: <input type='text' name='pw'><br>
<input type='submit' name='submit' value='submit'>
</form>
";
}
else {
die("<br>could not connect to table");
}
?>
<?php
if (isset($_POST['submit']))//if you submitted the form
{
$username = $_POST['username'];
$password = $_POST['pw'];
$email = $_POST['email'];
if ($username and $password and $email)
{
$addLogin = "INSERT INTO profile (username,email,password) VALUES ('$username','$email','$password')";
$success = $cnn->query($addLogin);
if ($success)
{
$_SESSION['name']="$username";
echo("<script>location.href = 'homePage.php';</script>");
}
else
{
die("login data failed to reach database");
}
}
else {echo "please fill out all the fields";}
}
else {
$submit=null;
echo 'no form submitted';
}
?>
addDetails.php
(不提交)
<?php
session_start();
error_reporting(E_ALL);
ini_set("display_errors",1);
require("connect.php");
require("login.php");
echo "<h1>Welcome ".$_SESSION['name']."</h1>";
echo "<form action='' method='post'>
Avatar: <input type='text' name='avatar'><br>
Location: <input type='text' name='location'><br>
Descripiton: <input type='text' name='about'><br>
Daily Goal: <input type='text' name='goal'><br>
<input type='submit' value='submit' name='submit'>
</form>
";
$avatar = $_POST['avatar'];
$location = $_POST['location'];
$goal = $_POST['goal'];
$about = $_POST['about'];
if (isset($_POST['submit']))
{
$sql = "INSERT INTO profile (avatar,location,goal) VALUES ('$avatar','$location','$goal')";
if ($cnn->query($sql)===TRUE)
{echo "you have inserted profile fields";}
else
{echo "sqlQuery failed to insert fields";}
}
?>
答案 0 :(得分:1)
如果要将数据添加到已存在的行,请在SQL
中查找UPDATE命令答案 1 :(得分:1)
您应该将' addDetails.php '中的Sql语句更改为:
UPDATE profile
SET avatar={$avatar}, location={$location}, goal={$goal}
WHERE id={$id}
顺便说一句,你永远不应该在你的制作中使用这个语句,这是不安全的,你应该记住防止Sql注入。