我编写了一个简单的代码来测试使用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)
答案 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注入。