首页 > 解决方案 > 如何在php中自动输入MySQL数据(将第1列数据输入到具有相同列的自动输入第2列数据)?

问题描述

如何在 php 中自动输入 MySQL 数据(将第 1 列数据输入到具有相同列的自动输入第 2 列数据),因为我在底部尝试了示例代码,但无法将第 1 列数据输入到具有相同列的自动输入第 2 列数据。

进入编码阶段。

1. 使用示例代码创建数据库。

CREATE DATABASE IF NOT EXISTS `tester`;

2. 使用示例代码创建表。

CREATE TABLE IF NOT EXISTS `customer` (
  `CustomerID` varchar(4) NOT NULL,
  `Name` varchar(50) NOT NULL,
  `Email` varchar(50) NOT NULL,
  `CountryCode` varchar(2) NOT NULL,
  `Budget` double NOT NULL,
  `Used` double NOT NULL,
  PRIMARY KEY (`CustomerID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `customer` (`CustomerID`, `Name`, `Email`, `CountryCode`, `Budget`, `Used`) VALUES
    ('C001', 'Win', 'win.weerachai@a.com', 'UK', 10000, 6000),
    ('C002', 'John', 'john.smith@a.com', 'UK', 20000, 8000),
    ('C003', 'Jame', 'jame.born@a.com', 'US', 30000, 6000),
    ('C004', 'Chalee', 'chalee.angel@a.com', 'US', 40000, 1000);

3. 用例子编写PHP。

<!DOCTYPE html>
<html>
<body>
<?php
    ini_set('display_errors', 1);
    error_reporting(~0);

    $serverName = "localhost";
    $userName = "root";
    $userPassword = "";
    $dbName = "tester";

    $conn = mysqli_connect($serverName,$userName,$userPassword,$dbName);

    $sql = "SELECT * FROM customer";

    $query = mysqli_query($conn,$sql);

    $sql2 = "SELECT * FROM customer";

    $query2 = mysqli_query($conn,$sql2);

?>

<form>
  <input list="abc" name="abc">
  <datalist id="abc">
    <?php 
    while ( $d=mysqli_fetch_assoc($query)) {
        echo "<option value='".$d['Name']."'></option>";
    }
    ?>
  </datalist>
  <br><br>

  <input list="abc2" name="abc2">
  <datalist id="abc2">
    <?php 
    while ( $d=mysqli_fetch_assoc($query2)) {
        echo "<option value='".$d['Email']."'></option>";
    }
    ?>
  </datalist>
</form>

</body>
</html>

我将第 1 列数据输入到与示例链接具有相同列的自动输入第 2 列数据的结果。

自动输入数据取决于我以 html 形式输入的内容

(例如,第一个输入表单输入 John,第二个输入表单自动输入 john.smith@a.com)。

标签: javascriptphphtmlmysql

解决方案


好消息:我有答案来解决自动输入 MySQL 数据(输入第 1 列数据以自动输入第 2 列数据与同一列)并与我一起支持 PHP 中的 UTF8。

一步一步用编码来回答。

1. 使用示例代码创建数据库。

CREATE DATABASE IF NOT EXISTS `mydatabase`;

2. 使用示例代码在“mydatabase”数据库中创建表。

CREATE TABLE `customer` (
  `CustomerID` varchar(4) NOT NULL,
  `Name` varchar(50) NOT NULL,
  `Email` varchar(50) NOT NULL,
  `CountryCode` varchar(2) NOT NULL,
  `Budget` double NOT NULL,
  `Used` double NOT NULL,
  PRIMARY KEY  (`CustomerID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- 
-- Dumping data for table `customer`
-- 

INSERT INTO `customer` VALUES ('C001', 'Win', 'win.weerachai@a.com', 'UK', 100000, 600000);
INSERT INTO `customer` VALUES ('C002', 'John', 'john.smith@a.com', 'UK', 200000, 80000);
INSERT INTO `customer` VALUES ('C003', 'Jame', 'jame.born@a.com', 'US', 300000, 60000);
INSERT INTO `customer` VALUES ('C004', 'Chalee', 'chalee.angel@a.com', 'US', 4000, 1000);

3. 用例子编写PHP。

returnCustomer2.php

<?php
    ini_set('display_errors', 1);
    error_reporting(~0);

$mydb = new mysqli("localhost","root","", "mydatabase") or die( mysqli_connect_error());

mysqli_set_charset($mydb, "utf8");

$strSQL = "SELECT * FROM customer WHERE 1 AND Name = '".$_POST["sCusID"]."' ";
$result = $mydb->query($strSQL) or die ($mydb->error);
//$intNumField = $result->field_count();
$resultArray = array();
while($row = $result->fetch_assoc()){ // use assoc to have array with keyname not keynumber
    $resultArray[]=$row;
}
$mydb->close();
echo json_encode($resultArray);
?>

index2.php

<html>
<head>
<style> 
input {
  padding: 12px 20px;
  margin: 8px 0;
  box-sizing: border-box;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){

    $("#txtName").change(function(){
            $.ajax({ 
                url: "returnCustomer2.php" ,
                type: "POST",
                data: 'sCusID=' +$("#txtName").val()
            })
            .success(function(result) { 

                var obj = jQuery.parseJSON(result);

                    if(obj == '')
                    {
                        $('input[type=text]').val('');
                    }
                    else
                    {
                          $.each(obj, function(key, inval) {

                               $("#txtName").val(inval["Name"]);
                               $("#txtEmail").val(inval["Email"]);
                          });
                    }

            });

        });
    });
</script>
</head>
<body>

<?php
    ini_set('display_errors', 1);
    error_reporting(~0);

    $serverName = "localhost";
    $userName = "root";
    $userPassword = "";
    $dbName = "mydatabase";

    $conn = mysqli_connect($serverName,$userName,$userPassword,$dbName);

    $sql = "SELECT * FROM customer";

    $query = mysqli_query($conn,$sql);

    $sql2 = "SELECT * FROM customer";

    $query2 = mysqli_query($conn,$sql2);

?>

<form>

<h2>Name</h2>

  <input list="abc" id="txtName" name="txtName" size="30" autocomplete="off">
  <datalist id="abc">
    <?php 
    while ( $d=mysqli_fetch_assoc($query)) {
        echo "<option value='".$d['Name']."'></option>";
    }
    ?>
  </datalist>

<h2>E-mail</h2>

  <input list="abc2" id="txtEmail" name="txtEmail" size="30" autocomplete="off">
  <datalist id="abc2">
    <?php 
    while ( $d=mysqli_fetch_assoc($query2)) {
        echo "<option value='".$d['Email']."'></option>";
    }
    ?>
  </datalist>
</form>

</body>
</html>

推荐阅读