2017-10-06 103 views
-2

我想創建一個註冊頁面,如果用戶插入所需的細節,然後點擊註冊按鈕,它應該在選定的表格中插入細節,並在數據庫中創建一個新表格我的HTML代碼:如何使用PHP表格創建mysql表格

<form method="POST" action="signuplink.php" class="form-inline justify-content-center"> 
<div class="col-md-6 justify-content-center form-group"> 
    <label class="sr-only">first_name</label> 
    <input type="text" name="first_name" class="form-control" placeholder="First Name"> 
    </div> 
<div class="col-md-6 justify-content-center form-group"> 
    <label class="sr-only">last_name</label> 
    <input type="text" name="last_name" class="form-control" placeholder="Last Name"> 
</div> 
<div class="col-md-6 justify-content-center form-group"> 
    <label class="sr-only">phonenumber</label> 
    <input type="text" name="phonenumber" class="form-control" placeholder="Contact Number"> 
</div> 
<div class="col-md-6 justify-content-center form-group"> 
    <label class="sr-only">username</label> 
    <input type="text" name="username" class="form-control" placeholder="Username"> 
</div> 
<div class="col-md-6 justify-content-center form-group"> 
    <label class="sr-only">email </label> 
    <input type="text" name="email" class="form-control" placeholder="[email protected]"> 
</div> 
<div class="col-md-6 justify-content-center form-group"> 
    <label class="sr-only">password </label> 
    <input type="password" name="password" class="form-control" placeholder="select password"> 
</div> 
<button type="submit" name="submit" class="btn btn-success ">Signup</button> 
</form> 

PHP代碼是如下,其中i重定向形式好心幫自動創建新表時,用戶填寫了成功的形式:

<?php 

if (isset($_POST['submit'])) { 

    include 'connection.php'; 
$x = mysqli_real_escape_string ($connect, $_POST['email']); 
$firstname= mysqli_real_escape_string ($connect, $_POST['first_name']); 
$lastname= mysqli_real_escape_string ($connect, $_POST['last_name']); 
$username= mysqli_real_escape_string ($connect, $_POST['username']); 
$phonenumber= mysqli_real_escape_string ($connect, $_POST['phonenumber']); 
$y= mysqli_real_escape_string ($connect, $_POST['password']); 

//Error handlers 
//Check for empty fields 
if (empty($x) || empty($firstname) || empty($lastname) || empty($username) || empty($phonenumber) || empty($y)) 
{ 
    header("Location: signup.php?signup=empty"); 
    exit(); 
} 
    else 
{ 
//Check if input characters are valid 
if (!preg_match("/^[a-zA-Z]*$/", $firstname) || !preg_match("/^[a-zA-Z]*$/", $lastname)) 
{ 
    header("Location: signup.php?signup=invalid"); 
    exit(); 
} 
else 
{ 
//Check if email is valid 
if (!filter_var($x, FILTER_VALIDATE_EMAIL)) 
{ 
header("Location: signup.php?signup=email"); 
exit(); 
} 
else 
{ 
$_SESSION['first_name']=$firstname; 
$sql = "SELECT * FROM users WHERE username='$username' or email='$x'"; 
$result = mysqli_query($connect,$sql); 
$resultCheck = mysqli_num_rows($result); 

if ($resultCheck > 0) { 
header("Location: signup.php?signup=usertaken"); 
exit(); 
} else { 
//Hashing the password 
$hashedPwd = password_hash($y, PASSWORD_DEFAULT); 
//Insert the user into the database 
} 
$sql = "INSERT INTO users (ID, username, phonenumber, email,first_name, last_name, password) VALUES ('','$username', '$phonenumber','$x','$firstname','$lastname','$hashedPwd');"; 
mysqli_query($connect, $sql); 
header("Location: signup.php?signup=successfully_logged_in"); 
exit(); 
} 
if($connect->query($sql)===TRUE) 
{ 
$sql = "CREATE TABLE $username (
ID int, 
LastName varchar(255), 
FirstName varchar(255), 
Address varchar(255), 
City varchar(255) 
)"; 
if ($connect->query($sql) === TRUE) { 
echo "Table MyGuests created successfully"; 
} else { 
echo "Error creating table: " . $connect->error; 
} 
} 
} 
} 
} 


else { 
header("Location: signup.php"); 
exit(); 
} 
?> 
+0

'CREATE TABLE $ username'你確定要這樣做嗎?這真的不是一個好主意。 –

+0

您是否爲每個用戶創建一個表格?請不要。將所有用戶放在一個表中。讓我們這樣考慮一下:當你可以創建1000行1000行的表時,爲什麼要創建1000行的表? – fedeTibaldo

+1

再次檢查您的邏輯。儘管你的代碼一次一步,你會明白爲什麼它失敗。我想*你*想想它並自己修復它,你會從中吸取教訓。 –

回答

0

如果你正在嘗試創建一個電子商務後端,如果你還在學習,你應該從頭開始做。至少如果你想存儲任何珍貴的數據(電子郵件/密碼組合和信用卡)。

就每個用戶而言,它對數據庫的效率並不高。換個角度思考

您有:
- 客戶(在你的情況下,用戶)
- 車(同樣可以通過customer_id鏈接這些客戶)
- shipping_addresses
(您可以通過customer_id鏈接這些客戶) - 訂單(...您可以通過customer_id鏈接這些客戶)

你只需要插入新行,並根據用戶的id登錄,您的ID添加到目標表的customer_id場。

Ex。保羅創造了一個新的秩序。

$sql = "INSERT INTO orders (id, customer_id, order_number, order_status, created_at, updated_at) VALUES ('', '$logged_in_users_id', '$generated_unique_order_number', '$initial_order_status', '$created_at_timestamp', '$updated_at_timestamp');";

+0

您也可以查看https://www.princeton.edu/~rcurtis/ultradev/images/storediagram.gif的想法。 – PaulELI

0

@弗雷德-II-謝謝這麼多兄弟相信我,我解決了它,它的工作完美罰款,因爲我想它是;下面是工作的PHP -

<?php 

if (isset($_POST['submit'])) { 

    include 'connection.php'; 

$x   = mysqli_real_escape_string ($connect, $_POST['email']); 
$firstname = mysqli_real_escape_string ($connect, $_POST['first_name']); 
$lastname = mysqli_real_escape_string ($connect, $_POST['last_name']); 
$username = mysqli_real_escape_string ($connect, $_POST['username']); 
$phonenumber= mysqli_real_escape_string ($connect, $_POST['phonenumber']); 
$y   = mysqli_real_escape_string ($connect, $_POST['password']); 

//Error handlers 
//Check for empty fields 
if (empty($x) || empty($firstname) || empty($lastname) || empty($username) || empty($phonenumber) || empty($y)) 
{ 
    header("Location: signup.php?signup=empty"); 
    exit(); 
} 
    else 
{ 
//Check if input characters are valid 
if (!preg_match("/^[a-zA-Z]*$/", $firstname) || !preg_match("/^[a-zA-Z]*$/", $lastname)) 
{ 
    header("Location: signup.php?signup=invalid"); 
    exit(); 
} 
else 
{ 
//Check if email is valid 
if (!filter_var($x, FILTER_VALIDATE_EMAIL)) 
{ 
header("Location: signup.php?signup=email"); 
exit(); 
} 
else 
{ 

$sql = "SELECT * FROM users WHERE username='$username' or email='$x'"; 
$result = mysqli_query($connect,$sql); 
$resultCheck = mysqli_num_rows($result); 

if ($resultCheck > 0) { 
header("Location: signup.php?signup=usertaken"); 
exit(); 
} else { 
//Hashing the password 
$hashedPwd = password_hash($y, PASSWORD_DEFAULT); 
//Insert the user into the database 

$sql = "INSERT INTO users (ID, username, phonenumber, email, first_name, last_name, password) VALUES ('','$username', '$phonenumber','$x','$firstname','$lastname','$hashedPwd');"; 
mysqli_query($connect, $sql); 
header("Location: signup.php?signup=successfully_logged_in"); 

if($connect->query($sql)===TRUE) 
{ 
$sql = "CREATE TABLE $username (
ID int, 
LastName varchar(255), 
FirstName varchar(255), 
Address varchar(255), 
City varchar(255) 
)"; 
if ($connect->query($sql) === TRUE) { 
echo "Table MyGuests created successfully"; 
} else { 
echo "Error creating table: " . $connect->error; 
} 
} 
} 
} 
} 
} 
} 


else { 
header("Location: signup.php"); 
exit(); 
}