繁体   English   中英

MYSQL / PHP:通过HTML形式插入数据,相同的“输入名称”

[英]MYSQL/PHP: Inserting data via HTML form, same “input name”

我是MySQL的新手,作为一个学习项目,我想创建一个配方数据库。 我希望用户能够通过一个简单的HTML表单输入配料,但是我仍然停留在如何标记表单的标签上,这样我就可以一次将几种配料输入数据库。

我想做这样的事情:

<form method="post" action="insert.php">
Ingredient 1: <input type="text" name="ingredient"><br />
Ingredient 2: <input type="text" name="ingredient"><br />
Ingredient 3: <input type="text" name="ingredient"><br />
<input type="submit" value="Submit">
</form>

当我这样做时,我将行添加到表中,但它们都为空。 我知道在表单中多次使用“ ingredient”(要在其中添加成分名称的表值)与我有关,但我只是不知道如何解决。

我绝对会喜欢如何使它起作用的一些意见。

像这样写

Ingredient 1: <input type="text" name="ingredient[]"><br />
Ingredient 2: <input type="text" name="ingredient[]"><br />

当您在php中获得REQUEST数组时,您实际上将获得一个名称数组

喜欢

$ing = $_POST['ingredient']; // $ing will be indexed array

您不能像过去那样对多个文本框使用相同的名称。 最后一个输入框的值将覆盖其他所有输入框的值,因为它们的名称相同。 您必须为每个输入文本使用不同的名称,或者将名称定义为数组,例如:

Ingredient 1: <input type="text" name="ingredient[]"><br />
Ingredient 2: <input type="text" name="ingredient[]"><br />
Ingredient 3: <input type="text" name="ingredient[]"><br />

因此, $_REQUEST['ingredient']$_POST['ingredient']将是一个普通的PHP数组,您可以从中获取每个文本框的值,例如$_REQUEST['ingredient'][x] ,其中x是某个整数索引,只要count($_REQUEST['addCart']) > x

工作代码:

index.html

<!DOCTYPE html>
<html>
<head>
<title> Recipes </title>
</head>
<body>
<form method="post" action="register.php">
Ingredient 1 : <input type="text" name="ing1"/><br/>
Ingredient 2 : <input type="text" name="ing2"/><br/>
Ingredient 3 : <input type="text" name="ing3"/><br/><br/>
<input type="submit" value="Enter" name="submit"/>
</form>
</body>
</html>

register.php

<?php

// coding to check database connection
$connection = mysqli_connect('localhost','root','adm','recipe');

/*
root -  username
adm -  passowrd
recipe - database name
*/

//checking whether submit button is clicked or not

if(isset($_POST['submit'])) 
{
   // Escaping special char & getting the values we entered in form through POST method
   $ing1 = mysqli_real_escape_string($connection,$_POST['ing1']);
   $ing2 = mysqli_real_escape_string($connection,$_POST['ing2']);
   $ing3 = mysqli_real_escape_string($connection,$_POST['ing3']);

      //data is table name

      $query = "INSERT into data VALUES('','$ing1','$ing2','$ing3')";
      $result = mysqli_query($connection,$query);
    echo "<p>Successfully Entered</p>"; 
    ?>

   <a href="index.html"> Click here to go to home </a>

<?
    }
?>

创建一个数据库,并将其命名为recipe ,将表命名为data data结构:

在此处输入图片说明

输出:

在此处输入图片说明

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM