2017-07-16 68 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