使用PHP和jQuery从MySQL提取数据并在与用户ID匹配的HTML表中显示

时间:2019-01-31 06:48:57

标签: php jquery mysqli

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

// 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>

// connection.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 table = userinfo

id nationalID firstName lastName

1 1200345 Sam Hunt

2 1200346约翰·丹佛

3 1200347彼得·帕克

4 1200348乔什·马修(Josh Matthew)

1 个答案:

答案 0 :(得分:0)

我尚未测试过该程序,但我认为这将正确输出您的要求。据我了解,您希望在单击按钮时以表格的形式输出数据。为此,您可以直接在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();
?>

并尝试使用准备好的语句来防止sql注入。