2017-07-16 70 views
0

我是新手,在插入字段时遇到麻烦。我创建了一个登录表单和一个主页表单供用户输入个人信息。登录表单提交给mysql数据库没问题,但个人资料表单拒绝提交;只有当我指定了与表单提交时的第一个表单相同的字段时。显然,我希望以第二种形式添加新数据,并希望能够组织我的数据库,其中包含一个表profile。它存储每个用户的信息,包括字段:id,username,password,avatar,avatar, locationgoalINSERT INTO不适用于Mysql数据库

感谢您的帮助&耐心等待。我将最终将两种形式的信息合并到用户记录中。不过,现在,我想知道为什么没有新的条目被创建或错误信息显示,即使我的错误显示打开。

编辑::抱歉,没有包括整个代码

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

请同时显示表格代码。 – 2017-07-16 06:29:06

+0

我猜你会上传一张照片也没有上面的脚本... 让我们看看你的表单代码 –

+0

你是怎么把你的错误显示在上面的?添加'error_reporting(E_ALL); ini_set('display_errors',1);'作为代码的第一行。 – 2017-07-16 06:32:41

回答

1

如果你想将数据添加到行已经存在,请在SQL中查找UPDATE命令

+0

谢谢我会尽力 – st4rgut

1

你应该在“addDetails.php”改变SQL语句:

UPDATE profile 
SET avatar={$avatar}, location={$location}, goal={$goal} 
WHERE id={$id} 

通过你永远也不会使用此语句在生产的方式,它是不是安全的,你应该记住,以防止Sql注入。

+0

谢谢,由于某些原因,大括号不能用于变量,所以我使用了引号:例如“$位置” – st4rgut