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

时间:2016-03-09 17:41:09

标签: php html mysql

我是HTML / PHP代码的新手。

我正在尝试构建一个表单,该表单将根据提供的键值(Vehicle 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作为测试&#39;在我添加其余值之前。 这让我头疼几个小时,所以我在这里寻求任何帮助。 感谢。

1 个答案:

答案 0 :(得分:0)

您可以通过查看$_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,您需要在1页中执行所有操作,这意味着您需要使用所需的值生成表单。 好的..如果你不想,你不必这样做,但我会真的推荐它。这样你的代码就可以在一起而不会分开。

现在有一百万种方法可以对此进行编码,我只选择了一个您可以轻松理解的方法。

还有另一种选择

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

旁注......

切换到数据库的PDO,以允许将发布数据绑定到预准备语句。目前,您的代码对SQL注入开放。