在HTML文本框中显示SQL查询结果

时间:2016-06-26 11:21:40

标签: php html5 mysqli

我创建了一个名为users的数据库表,我创建了一个名为forms.php的php文件。 forms.php有两种形式。第一种形式是搜索,第二种形式是数据库中应该出现的记录:

               <form method="post" action="search.php">
                    <div class="input-group has-success">
                        <input id="btn-input" name="search" type="text" class="form-control input-md" placeholder="Please type the ID number of the user you want to update..." />
                        <span class="input-group-btn">
                            <button class="btn btn-success btn-md" id="btn-chat" type="submit">Search</button>
                        </span>
                    </div>
                </form>
                </div>


                    <div class="col-md-6">

                        <form role="form">


                            <div class="form-group">
                                <label>username</label>
                                <input class="form-control" placeholder="Placeholder">
                            </div>

                            <div class="form-group">
                                <label>Password</label>
                                <input class="form-control">
                            </div>


                            <div class="form-group">
                                <label>UserType</label>
                                <input class="form-control">
                            </div>

                        </form>

这是用于搜索的php脚本的第一种形式。这是我的 search.php 中的脚本:

          <?php

            $conn = mysqli_connect("localhost", "root", "", "asset_inventory");

         if($conn === false){
              die("ERROR: Could not connect. " . mysqli_connect_error());
         }


         $search = mysqli_real_escape_string($conn, $_POST['search']);


         $sql = "SELECT * FROM  users WHERE user_id='$search'";
         $result = mysqli_query($conn, $sql);

         if (mysqli_num_rows($result) > 0) {

         while($row = mysqli_fetch_assoc($result)) {

         $id=$row['user_id']; 
         $name=$row['user_name']; 
         $pass=$row['user_pass']; 
         $type=$row['user_type'];

         header("location: forms.php");
    }

      } else {
         echo "0 results";
   }


     mysqli_close($conn);
       ?>

现在我想使用search.php中提到的变量,这些变量包含要在标题forms.php中以第二种形式显示的行。有什么建议?我陷入了困境。谢谢!

3 个答案:

答案 0 :(得分:0)

您有两个选择:

  1. 将表单提交给相同的forms.php并处理打印文档内搜索的结果,只需遍历结果并打印所需的html

  2. 您可以使用AJAX并使用搜索查询向search.php发送请求并返回JSON结果,然后使用forms.php中的一些javascript代码来呈现结果。

答案 1 :(得分:0)

我会尽量保持我的解释/解决方案尽可能简单,因为您的代码表明您刚开始使用这些内容。

您编写了search.php来从数据库中返回数据。它做得很好。问题是,一旦掌握了数据,您就无法对其进行任何操作。我正在谈论这些代码:

  if (mysqli_num_rows($result) > 0)
  {
    while($row = mysqli_fetch_assoc($result))
    {
      $name=$row['user_name']; 
      $pass=$row['user_pass']; 
      $type=$row['user_type'];
    }
  }
  else
  {
    echo "0 results";
  }

所以你要设置$ name,$ pass和$ type变量,这就是你需要的数据。如果它找到第二个用户,它会覆盖$ name,$ pass和$ type变量,并且你的第一个用户数据会从PHP中消失(尽管它保留在数据库中,不用担心)。

一个易于理解的解决方案是更改代码的位置。您应该在while()循环中显示数据。因此,如果您将while() - 循环代码放在HTML页面中,您可以创建一个显示用户信息的表格,如下所示:

<table>

<?php
  if (mysqli_num_rows($result) > 0)
  {
    while($row = mysqli_fetch_assoc($result))
    {

?>

  <tr>
    <td> <?php echo $name=$row['user_name']; ?> </td>
    <td> <?php echo $name=$row['user_pass']; ?> </td>
    <td> <?php echo $name=$row['user_type']; ?> </td>
  </tr>

<?php
    }
  }
  else
  {
?>

  <tr>
    <td colspan="3">0 results</td>
  </tr>

<?php
  }
?>

</table>

其他解决方案包括功能和类,但您的代码表明您还不了解它们。我建议你尝试使用已有的知识构建页面。然后阅读有关功能。然后重建相同的页面,但为它创建一个函数。

答案 2 :(得分:0)

这是一种ajax方法。简单方便

表格页

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>         
<script>
$(function(){
    $(document).on("click", "#btn-chat", function(e) {
    e.preventDefault();
        //Built a url to send
        var info = $("#form").serialize();                          
        $.ajax({     
            type: "POST",
            url: "search.php",
            data: info,
            success: function(result){                  
                  //$('#respoondarea').load(location.href + '#respondarea');                
                  //$("#form")[0].reset();
                  $('#respond').html(result);   
            }
        });     
        e.preventDefault();
    }); 
});

</script>             
               <form method="post" id="form" action="search.php">
                    <div class="input-group has-success">
                        <input id="btn-input" name="search" type="text" class="form-control input-md" placeholder="Please type the ID number of the user you want to update..." />
                        <span class="input-group-btn">
                            <button class="btn btn-success btn-md" id="btn-chat" type="submit">Search</button>
                        </span>
                    </div>
                </form>

<div id="respond"></div>

搜索PHP页面

<?php

$conn = mysqli_connect("localhost", "root", "", "asset_inventory");
if($conn === false){
       die("ERROR: Could not connect. " . mysqli_connect_error());
}

$search = $_POST['search'];
//$query_user = mysqli_query($conn,"SELECT * FROM  users WHERE user_id='$search'");
$query_user = mysqli_query($conn,"SELECT * FROM  users WHERE user_id LIKE '%$search%' ");
$row_user = mysqli_fetch_assoc($query_user);
$totalRows_user = mysqli_num_rows($query_user);

?>

  <table class="table">
    <thead>
      <tr>
        <th>Username</th><th>User pass</th><th>User type</th>
      </tr>
    </thead>
    <tbody>
   <?php  do { ?>
      <tr>
        <td><?php echo $row_user['user_name']; ?></td>
        <td><?php echo $row_user['user_pass']; ?></td>
        <td><?php echo $row_user['user_type']; ?></td>
      </tr>
<?php } while ($row_user = mysqli_fetch_assoc($query_user));   ?> 
    </tbody>
  </table>

 <?php if ($totalRows_user == 0) { // Show if record empty ?>

 <div class="alert alert-info" role="alert"> No record found </div>

 <?php } // Show if recordset empty ?>

希望能帮助