gpt4 book ai didi

php - 通过 PHP MYSQL 查找的 HTML 表单搜索功能

转载 作者:行者123 更新时间:2023-11-29 21:16:28 25 4
gpt4 key购买 nike

我对 HTML/PHP 代码很陌生。

我正在尝试构建一个表单,该表单将根据提供的键值(车辆 VRN)搜索 MySQL 数据库。按照目前的情况,我已经对提交代码进行了排序,并且可以通过单击“提交新”将新客户添加到 Customers 数据库

但是,我无法使用搜索功能,例如输入车辆 VRN 并使用该客户信息填写表格的其余部分

这是 HTML 表单:

    <!DOCTYPE HTML>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ABC Autorite Ltd</title>
<link rel="stylesheet" href="style/style.css" type="text/css" media="screen" />
<script type="text/javascript" src="style/accordian.pack.js"></script>
</head>

<body onload="new Accordian('basic-accordian',5,'header_highlight');">
<div id="logo"><h1>ABC Autorite</h1></div>
<div id="basic-accordian" >
<div id="test-header" class="accordion_headings header_highlight">Customers</div>
<div id="test-content">
<div class="accordion_child">
<h1>Search customer database or submit new details</h1>
<div class="form_layout">
<form method="post" id="Customer">
<select name="title">
<option>Mr.</option>
<option>Dr.</option>
<option>Ms.</option>
<option>Mrs.</option>
</select>

<input type="text" name="first_name" placeholder="First Name" value="<?php echo $first_name; ?>">
<input type="text" name="last_name" placeholder="Last Name">
<input type="text" name="phone_number" placeholder="Phone">
<input type="text" name="email_address" placeholder="Email Address">
<input type="text" name="address_line_1" placeholder="Address">
<input type="text" name="postcode" placeholder="Postcode">

<input type="text" name="vrn" placeholder="VRN">


<input type="text" name="make" placeholder="Make">
<input type="text" name="model" placeholder="Model">
<input type="text" name="year" placeholder="Year">

<div class="form_buttons">
<input type="submit" name="search" Value="Search" onclick="form.action='search.php';"/>
<input type="submit" name="submit" Value="Submit New" onclick="form.action='submit.php';"/>
</div>

</form>
</div>
</div></div>
<div id="test1-header" class="accordion_headings">New Job Card</div>
<div id="test1-content">
<div class="accordion_child">
<h1>Create a new Job Card</h1>
</div>
</div>
<div id="test2-header" class="accordion_headings">Job Cards</div>
<div id="test2-content">
<div class="accordion_child">
<h1>Search for a previous Job Card</h1>
</div>
</div>
</div>
</div>
<div id="footer">
<p>Copyright ABC Autorite Ltd</p>
</div>
</body>
</html>

这是 PHP 搜索脚本:

    <?php
$servername="192.168.0.8";
$username="my_admin";
$password="my_password";
$dbname="ABCAUTORITE";


// Opens a connection to a MySQL server

$connection=mysql_connect ($servername, $username, $password);
if (!$connection) { die('Not connected : ' . mysql_error());}

// Set the active MySQL database

$db_selected = mysql_select_db($dbname, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}

$vrn = $_POST['vrn'];
$sql = mysql_query("SELECT * FROM Customers WHERE vrn like '%$vrn%'");

while($row = mysql_fetch_array($sql))
{
echo $row['first_name'];
echo $row['last_name'];

}
?>

在添加其余值之前,我现在只是返回 first_namelast_name 作为“测试”。这让我困惑了几个小时,所以我在这里寻求任何帮助。谢谢。

最佳答案

您可以通过检查$_POST[]变量isset来分隔表单

<?php # customer.php

if(isset($_POST['search'])){
echo 'pressed the search button.';
while($row = mysql_fetch_assoc($sql)){
$form[] = '<input type="text" name="first_name" value="'.$row['first_name'].'">';
$form[] = '<input type="text" name="last_name" value="'.$row['last_name'].'">';
// etc
}
} elseif(isset($_POST['submit'])){
# execute code to submit user.
} else {
# render the form normally.
$form[] = '<input type="text" name="first_name" placeholder="First Name" value="">';
$form[] = '<input type="text" name="last_name" placeholder="Last Name" value="">';
// etc.
}

?>

并且只需使用标准表单即可。

<!-- Still in customer.php -->
<form method="post" id="Customer" action="./customer.php">
<?php
foreach($form as $v){
echo $v;
}
?>
<div class="form_buttons">
<input type="submit" name="search" Value="Search" />
<input type="submit" name="submit" Value="Submit New" />
</div>
</form>

现在你的问题:

要单独使用 PHP 和 HTML,您需要在一页中完成所有操作,这意味着您需要使用所需值生成表单。好吧..如果您不愿意,则不必这样做,但我真的会推荐它。这样你的代码就在一起而不是分开。

现在有一百万种编码方式,我只是选择了一种您可能能够轻松理解的方式。

还有一个替代方案

Javascript 和 PHP 的组合。使用Javascript(我真的推荐jQuery)来请求服务器上的单个php文件并让它返回一个json格式的对象。然后使用 jQuery 更新已渲染的表单。

附注..

切换到数据库的 PDO,以便将发布数据绑定(bind)到准备好的语句。目前您的代码对 SQL 注入(inject)开放。

关于php - 通过 PHP MYSQL 查找的 HTML 表单搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35898780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com