【问题标题】:Fetching Data from MySQL using PHP & jQuery and displaying in HTML table matching the user ID使用 PHP 和 jQuery 从 MySQL 获取数据并显示在与用户 ID 匹配的 HTML 表中
【发布时间】:2019-01-31 06:48:57
【问题描述】:

我编写了一个简单的代码来测试使用 PHP 和 jQuery 从 MySQL 表中获取数据,但是当我从搜索框中搜索 ID 时(我有 ID 1 到 4 以及用户详细信息,例如 nationalId、firstName、lastName ) 并且当我搜索 MySQL 表中存在的 1 到 4 ID 但当我搜索 ID 5 及以上(不存在于 MySQL 表中)时它显示 1 它输出“No ID found”这是正确的输出身份证。

//index.php

<DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>
          <script type="text/javascript" src="js/getUser.js"></script>
</head>
<body>

Citizenship ID No.<input type="text" id="id" placeholder="Type Your CID" />
          <button type="submit" id="id-submit" value="Track">TRACK</button> 

          <div id ="display"></div>          
</form>
</body>
</html>

//连接.php

<?php
$con = mysqli_connect('localhost','root','');
mysqli_select_db($con,'user');
?>

//getUser.js
    $(document).ready(function(){
    $('button#id-submit').on('click', function(){

        var id = $('input#id').val();
            if ($.trim(id) != '') {
                $.post("php/getData.php", { id: id}, function(data) {
                    $('div#display').text(data);

            });

        }

    });
});

//getData.php

<?php
if (isset($_POST['id']) === true && empty($_POST['id']) === false){
    require '../sql/connection.php';


    $query = "SELECT * FROM userinfo WHERE ID = '". mysqli_real_escape_string($con, trim($_POST['id'])) . "'";

    $result = mysqli_query($con,$query);

    echo (mysqli_num_rows($result) !== 0) ? mysqli_data_seek($result, 0) : 'No ID found';

    }
    ?>

//MyMySQL表=用户信息

id nationalID firstName lastName

1 1200345 山姆亨特

2 1200346 约翰丹佛

3 1200347 彼得·帕克

4 1200348 乔什·马修

【问题讨论】:

  • id 5 is no logner in your MySQL table = userinfo 所以如何获取 sql id number 5
  • @Sabastian Sonam Ugyen,有什么问题,你想达到什么目的?
  • @Devina Leong 我想用 HTML 表单输出用户信息。
  • @Mohammad Malek 我理解您的担忧,但我已经提到它输出“未找到 ID”,这是正确的输出。我强调的是 ID 1 到 4,当我输入 id 1 到 4 时应该输出用户信息

标签: php jquery mysqli


【解决方案1】:

我没有测试过这个程序,但我认为它会是你所要求的正确输出。据我了解,当您单击按钮时,您希望以表格的形式输出数据。要实现这一点,您可以直接在 php 本身的表中获取和打印数据。

这是您需要的代码

  <?php
 if (isset($_POST['id']) === true && empty($_POST['id']) === false){
require '../sql/connection.php';


$query = "SELECT * FROM `userinfo` WHERE ID = '". mysqli_real_escape_string($con,        trim($_POST['id'])) . "'";

 $result = mysqli_query($con,$query);


if ($result->num_rows > 0) {

 echo '<table>';
 echo '<tr>';
 echo '<th>';
 echo 'id'; 
 echo '</th>';
echo '<th>';
echo 'nationalID'; 
echo '</th>'; 
echo '<th>';
echo 'firstName'; 
echo '</th>';
echo '<th>';
echo 'lastName'; 
echo '</th>';
echo '</tr>';

while($row = $result->fetch_assoc()) {
echo '<tr>';
echo '<td>';
echo $row['id']; 
  echo '</td>';
 echo '<td>';
 echo $row['nationalID']; 
 echo '</td>'; 
 echo '<td>';
 echo $row['firstName']; 
  echo '</td>';
  echo '<td>';
 echo $row['lastName']; 
echo '</td>';
 echo '</tr>';
  }
  echo '</table>';
 }
}
$con->close();
?>

并尽量使用prepared statements来防止sql注入。

【讨论】:

  • 感谢它的代码,但它显示原始 HTML 标记而不是表格。如果 ID 不存在怎么办,我想显示一条消息“没有匹配的 ID”。我尝试使用 "else {echo "No ID match!";}" 但没有显示任何内容。
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
相关资源
最近更新 更多