2017-07-16 5 views
0

私はフィールドを挿入する際に問題があるmysqlの初心者です。私はログインフォームと個人用の詳細を入力するためのホームページフォームを作成しました。ログインフォームは、罰金mysqlデータベースに提出したが、個人の詳細フォームは提出することを拒否;最初のフォームと同じフィールドを指定した場合にのみ、フォームは送信されました。明らかに、私は第2の形式で新しいデータを追加したいと思います。私はデータベースを整理するためのヒントを得たいと思います。テーブルはprofileです。フィールドを含むすべてのユーザに関する情報を格納します:username,passwordavatarlocationgoalなどMySQLデータベースでINSERT INTOが機能しない

&忍耐があります。私は最終的に2つのフォームの情報をユーザーレコードにまとめます。今のところ、エラー表示がオンになっていても、なぜ新しいエントリが作成されないのか、エラーメッセージが表示されるのかを知りたいです。

EDIT ::コード全体に

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

フォームコードも表示してください。 –

+0

私はあなたも上記のスクリプトではない写真をアップロードすると思います... あなたのフォームコードを参照してください –

+0

どのようにエラー表示をオンにしましたか? 'error_reporting(E_ALL);を追加してください。 ini_set( 'display_errors'、1); 'をコードの最初の行として使用します。 –

答えて

1

あなたが行にデータを追加する場合すでに存在する場合は、SQLでUPDATEコマンドを参照してください。

+0

私はそれを試していただきありがとうございます – st4rgut

1

あなたがに「addDetails.php」内のSQLステートメントを変更する必要があります:あなたがあなたの生産にこのステートメントを使用しないでくださいちなみに

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

、それは安全ではない、あなたが防ぐために心に留めておく必要がありますSQLインジェクション。

+0

ありがとう、何らかの理由で中括弧が変数の周りで動作しなかったので、代わりに引用符を使用しました:例'$ location' – st4rgut

関連する問題