html — вставка пользовательских данных из PHP в форму с пользовательским вводом

Я пытаюсь выяснить, как вставить информацию в мою базу данных из пользовательского ввода из HTML-формы, используя PHP, но я не уверен на 100%, как.

Вот что у меня сейчас.

HTML

    <form id="playerForm" action="insert.php" method="post">
Player Name: <input type="text" value="playerName">
Player Race: <input type="text" value="playerRace">
Player Class: <input type="text" value="playerClass">
<button id="submit">Submit</button>
</form>

PHP

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

//create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

//check connection
if(!$conn){
die("Unable to connect to MySQL: " . mysqli_connect_error());
}

echo "connected successfully"."<br><br>";

//selects the different data types from the professions table
$sql = "INSERT INTO Player (PlayerName, PlayerRace, PlayerClass)
VALUES()";

$result = $conn->query($sql);

$conn->close();

-1

Решение

попробуйте ниже code.and должно быть одно поле AUTO_INCREMENT в вашей таблице ‘Player’.

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

//create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

//check connection
if(!$conn){
die("Unable to connect to MySQL: " . mysqli_connect_error());
}

echo "connected successfully"."<br><br>";
if(isset($_REQUEST["submit"])){
$p_name = $_POST['playerName'];
$p_race = $_POST['playerRace'];
$p_class = $_POST['playerClass'];
//selects the different data types from the professions table
$sql = mysqli_query($conn,"INSERT INTO Player (PlayerName, PlayerRace, PlayerClass)
VALUES('$p_name','$p_race','$p_class')");}

$conn->close();
?><form id="playerForm" method="post">
Player Name: <input type="text" name="playerName">
Player Race: <input type="text" name="playerRace">
Player Class: <input type="text" name="playerClass">
<input type="submit" name="submit" value="SUBMIT"/>
</form>
2

Другие решения

вам нужно назначить форму name attribute , если вы не используете имя, то вы не можете получить данные, и если вы хотите установить поле ввода пустым, поэтому в этом случае не устанавливайте значение

 <form id="playerForm" action="insert.php" method="post">
Player Name: <input type="text" name="playerName" value="playerName">
Player Race: <input type="text"  name="playerRace" value="playerRace">
Player Class: <input type="text" name="playerClass" value="playerClass">
<input type="submit" value="submit">
</form>

если вы хотите установить поле ввода пустым, то в этом случае не устанавливайте значение

<form id="playerForm" action="insert.php" method="post">
Player Name: <input type="text" name="playerName" value="">
Player Race: <input type="text"  name="playerRace" value="">
Player Class: <input type="text" name="playerClass" value="">
<input type="submit" value="submit">
</form>

и это ваш файл insert.php, и важно то, что ваша структура таблицы должна быть в порядке и использовать также автоинкремент и первичный ключ, который поможет вам

 <?php

$link = mysqli_connect("localhost", "jgbydtoz_root", "123warcraft", "jgbydtoz_warcraft");if($link === false){

die("ERROR: Could not connect. " . mysqli_connect_error());

}$playerName = mysqli_real_escape_string($link, $_POST['playerName']);

$playerRace = mysqli_real_escape_string($link, $_POST['playerRace']);

$playerClass = mysqli_real_escape_string($link, $_POST['playerClass']);

$sql = "INSERT INTO Player (`PlayerName`, `PlayerRace`, `PlayerClass`) VALUES ('$playerName', '$playerRace', '$playerClass')";

if(mysqli_query($link, $sql)){

echo "added successfully.";

} else{

echo "ERROR: . " . mysqli_error($link);

}mysqli_close($link);

?>
1

Первое, что вам нужно сделать, это Учебник по HTML-формам

Ваши входные данные формы не имеют значений имен вообще, поэтому вы не сможете извлечь любое значение из php и сохранить

вот как должна выглядеть ваша форма:

<form id="playerForm" action="insert.php" method="post">
Player Name: <input type="text" name="playerName">
Player Race: <input type="text" name="playerRace">
Player Class: <input type="text" name="playerClass">
<button id="submit" type="submit">Submit</button>
</form>

Затем в insert.php проверьте, установлены ли входы и не пусты ли они перед обработкой. тогда, если все готово, вы можете идти, используйте MySQL подготовил заявления вставить данные / pdo подготовил заявления

<?php

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$errors = "";
$fields = array("playerName","playerRace","playerClass");

foreach ($fields as $fieldName) {

if (!isset($_POST[$fieldName]) && !empty($_POST[$fieldName])) {

$errors++;
die("Fill in all the fields");
}
}

if ($errors <= 0) {

$playername  = $_POST['playerName'];
$playerrace  = $_POST['playerRace'];
$playerclass = $_POST['playerClass'];

$sql = $conn->prepare("INSERT INTO Player (PlayerName,PlayerRace,PlayerClass) VALUES(?,?,?");
$sql->bind_param("sss", $playername, $playerrace, $playerclass);

if ($sql->execute()) {

echo "data inserted";
} else {

echo "Error : " . $conn->error; // in live site send this to error log not browser
}
}?>
1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector