Php MySQL查询不输出结果仅标题

Php MySQL查询不输出结果仅标题,php,html,css,mysql,ajax,Php,Html,Css,Mysql,Ajax,我目前正在练习PHP和AJAX,我正在尝试创建一个应用程序,允许用户在数据库中实时搜索产品库存。当用户在其中一个条目中键入字母时,会显示标题,但不会显示数据。我不确定我是否做错了,但我会让你们来判断。代码如下: Results.php-如下 结果 $q=intval($\u GET['q'])尝试将输入转换为整数。删除此行。您可以尝试我的代码。我已经测试过这个了。每次输入文本时,输入的文本都会与数据库中的某个记录匹配,如果有匹配的记录,则会显示与输入文本匹配的记录。希望这有帮助:)请注意下

我目前正在练习PHP和AJAX,我正在尝试创建一个应用程序,允许用户在数据库中实时搜索产品库存。当用户在其中一个条目中键入字母时,会显示标题,但不会显示数据。我不确定我是否做错了,但我会让你们来判断。代码如下:

Results.php-如下


结果

$q=intval($\u GET['q'])尝试将输入转换为整数。删除此行。

您可以尝试我的代码。我已经测试过这个了。每次输入文本时,输入的文本都会与数据库中的某个记录匹配,如果有匹配的记录,则会显示与输入文本匹配的记录。希望这有帮助:)请注意下面的代码是“ajax\u search.php”的内容


$(文档).ready(函数(){
$(“#搜索”).keyup(函数(){
var name=$('#search').val();
如果(名称==“”){
$(“#显示”).html(“”);
}
否则{
$.ajax({
类型:“POST”,
url:“ajax_search.php”,
数据:{
搜索:名称
},
成功:函数(html){
$(“#display”).html(html).show();
}
});
} 
}); 
});

此外,您还需要对输入进行清理,以免受到SQL注入攻击。为输入伙伴干杯,它没有解决问题,但我感谢您的努力!我知道这一点,但我只是想在进一步复杂化之前让基本功能发挥作用:在删除intval()行之后,您在q变量中添加了什么?我假设您使用的是
URL?q=name
,因为您使用的是$\u GET.@BobK,所以请第一次正确地学习它。在事后解决这样的安全问题要困难得多如果您已经在
mysqli\u connect()
中提供了数据库名称,那么为什么要使用
mysqli\u select\u db()
?鉴于您没有明显的错误,我认为可以安全地假设您的查询不会返回任何结果。您可以进行一些非常基本的调试,a)确认情况属实,b)找出没有结果的原因
 <!DOCTYPE html>
<html>
<head>
<title>Results</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<?php
$q = intval($_GET['q']);

$con = mysqli_connect("localhost", "username", "password", "databaseName");
//edited out for safety 

if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"jakeholc_ajaxtest");

$sql="SELECT * FROM stock WHERE name LIKE '%{$q}%'";
$result = mysqli_query($con,$sql);

echo "<table>
<tr>
<th>Product name</th>
<th>Description</th>
<th>Price</th>
<th>Quantity</th>
</tr>";

if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['descr'] . "</td>";
echo "<td>" . $row['price'] . "</td>";
echo "<td>" . $row['quantity'] . "</td>";
echo "</tr>";
}
}


echo "</table>";
mysqli_close($con);
?>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#search").keyup(function() {
var name = $('#search').val();
if (name == "") {
$("#display").html("");
}
else {
$.ajax({
type: "POST",
url: "ajax_search.php",
data: {
search: name
},
success: function(html) {
$("#display").html(html).show();
}
});
} 
}); 
});
</script>   
</head>

<body>
<input type="text" id="search" placeholder="Search Product Here..." />
<?php
$con = mysqli_connect("localhost","username","password","databasename"); 
if (mysqli_connect_errno()) {
echo "Database Connection Failed: " . mysqli_connect_error();
}
?>
<?php
if (isset($_POST['search'])) {
$key = $_POST['search'];
$query = "SELECT * FROM stock  WHERE name LIKE '%$key%' OR descr LIKE '%$key%' OR price LIKE '%$key%' OR quantity LIKE '%$key%' ";
$execute_query = mysqli_query($con, $query);
echo "<table border='3px' cellpadding='3px' cellspacing='3px' bgcolor='skyblue' align='center'>";
echo "<tr>";
echo "<td>Product Name</td>";
echo "<td>Description</td>";
echo "<td>Price</td>";
echo "<td>Quantity</td>";
echo "</tr>";
while ($result = mysqli_fetch_array($execute_query)) {
echo "<tr>";
echo "<td>".$result['name']."</td>";
echo "<td>".$result['descr']."</td>";
echo "<td>".$result['price']."</td>";
echo "<td>".$result['quantity']."</td>";
echo "</tr>";
}}
mysqli_close($con);
?>
</table>
<div id="display">
<!-- Ouput will display here -->
</div>
</body>
</html>