我在尝试从数据库中获取数据时遇到了麻烦。代码只会从数据库中检索第一行数据。数据是正确的,但是我在html输入字段中输入的信息与添加的新行中的数据相同并不重要。解决这个问题的任何帮助都会很棒。
如果有人要指出我的代码中混合了“POST”和“GET”,我可以理解这是一个可能的问题,但是当匹配时不会从数据库中检索数据,除了表中的第一行数据。
任何帮助都会很棒!!!感谢所有提前回答的人。
我的HTML代码:
的index.php
<div class="row">
<div class="col-md-1"></div>
<div class="col-xs-3">
<h3 class="h4 text-center"><input type="text" name="barcode" id="barcode" size="90" class="col-md-9" value="" method="GET" placeholder="Barcode / Product Name"></h3>
</div>
</div>
<br />
<div class="row">
<div class="col-md-1"><p class=""></p></div>
<div class="col-md-6">
<table id="report" class="table table-bordered table-hover">
<thead>
<tr>
<td>SKU</td>
<td>Model</td>
<td>Item Description</td>
<td>Qty</td>
</tr>
</thead>
<tbody>
<?php get_item(); ?>
</tbody>
</table>
</div>
</div>
这是我的AJAX脚本
<script>
var inp = $("#barcode");
// where #txt is the id of the textbox
$("#barcode").keyup(function (event) {
if (event.keyCode == 13)
{
if (inp.val().length > 0)
{
$.ajax({
url: "index.php",
type: "GET", //Also tried POST method. Didn't work either
data: {id: inp.val()},
success: function(response)
{
values = response.split(' - ');
$('#report tr:last').after(
"<tr class='table-row'>" +
"<td class=''>" + values[1] + "</td>" +
"<td class=''>" + values[2] + "</td>" +
"<td class=''>" + values[3] + "</td>" +
"<td class=''>" + values[4] + "</td></tr>");
}});
}
$('input[name=barcode]').val('');
}
});
</script>
这是我的PHP代码
function get_item(){
global $con;
if(!empty($_POST))
{
$query = query("SELECT * FROM items");
confirm($query);
while($row = fetch_array($query)) {
$sku = $row['sku'];
$model = $row['category'];
$desc = $row['description'];
$qty = $row['qty'];
echo($id.' - '.$sku.' - '.$model.' - '.$desc.' - '.$qty);
die();
}
}
}
答案 0 :(得分:2)
将die();
函数调用移出while循环。它在第一个循环结束时被称为rigth,终止你的php脚本。