如何使用PHP搜索数据库中的特定行?
如何从HTML页面中的表单进行搜索并在同一HTML页面中显示结果?当我尝试运行表明inputPackageID未定义的代码时,我遇到了一个错误。我怎样才能解决这个问题。似乎无法从表单中识别变量。请帮忙 这是我的密码。如果你不明白我的问题,你可以问我你不清楚的地方如何使用PHP搜索数据库中的特定行?,php,html,database,pdo,Php,Html,Database,Pdo,如何从HTML页面中的表单进行搜索并在同一HTML页面中显示结果?当我尝试运行表明inputPackageID未定义的代码时,我遇到了一个错误。我怎样才能解决这个问题。似乎无法从表单中识别变量。请帮忙 这是我的密码。如果你不明白我的问题,你可以问我你不清楚的地方 <div class="main"> <div class="col-md-12"> <div class="row"> <div class="
<div class="main">
<div class="col-md-12">
<div class="row">
<div class="container">
</div>
<div class="search center-block col-md-6" align="center">
<p>
Want to track your package? <br />
Enter your Package ID(PID)
</p>
<form method="post" action="trackShipment.php">
<div class="form-group">
<label class="sr-only" for="inputPackageID"></label>
<input type="search" name="inputPackageID" class="form-control edit-form-control" id="inputPackageID" placeholder="PID">
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-primary" name="submit" />
</div>
</form>
</div>
<div class="col-md-8" align="center">
<h2>Well, Here is your package!</h2>
<?php
include '../includes/connection.php';
//include 'phpscripts/trackShipment.php';
$PackageID = $_GET['inputPackageID'];
$sql = "select * from package where p_id='$PackageID'";
?>
<table class="table table-striped">
<tr>
<th><span>PID</span></th>
<th><span>Customer ID</span></th>
<th>Name</th>
<th>Description</th>
<th>Destination Per KM</th>
<th>Type</th>
<th>Price/KG</th>
</tr>
</th>
<?php
foreach ($db->query($sql) as $count)?>
<tr>
<td>
<?php echo $count['p_ID']; ?>
</td>
<td>
<?php echo $count['cus_ID']; ?>
</td>
<td>
<?php echo $count['package_name']; ?>
</td>
<td>
<?php echo $count['package_description']; ?>
</td>
<td>
<?php echo $count['package_type']; ?>
</td>
<td>
<?php echo $count['destination_per_km']; ?>
</td>
<td>
<?php echo $count['price_per_kg']; ?>
</td>
<?php } ?>
</table>
</div>
</div>
想追踪你的包裹吗
输入您的包ID(PID)
好的,这是你的包裹!
它向您展示了它没有定义,因为您的表单使用post方法,而您使用的是GET数组
$PackageID = $_GET['inputPackageID'];
换成
$PackageID = $_POST['inputPackageID'];
另外,使用isset()
因为您在同一页面中使用的是您的实体代码
或者!空()
如果您在同一文件中使用相同的代码,您可以使用action=“
和一个额外的条件语句作为提交按钮
if(isset($\u POST['submit']){…}
看到你的评论,情况就不是这样了,你正在使用一个单独的文件,所以我们可以把它划掉
但是,如果GET方法是您真正想要使用的方法,则需要在表单中将方法更改为method=“GET”
。使用这种方法是不安全的,请参考我的脚注
脚注: 您当前的代码对用户开放。使用,或者,它们更安全
“如何从HTML页面中的表单进行搜索并在同一HTML页面中显示结果?”
- 为此,您可以使用Ajax,也可以使用
action=”“
?inputPackageID=xxx
。@Beems对此表示抱歉。我在这里度过了漫长的一天,而且已经很晚了。我正试图解决问题的实质。而trackshipping.php是另一个php文件,不是我目前正在处理的页面。
如果希望在同一页面或Ajax上获得结果,请使用action=“”
,如我下面的回答所述。如果这不能解决问题,并且我在回答中解释了它是未定义的,那么我将简单地删除它@WillieMwewa@WillieMwewa如果您希望通知社区已找到解决方案,请将其标记为已解决。否则,它将保留在未答复类别中。下面是如何返回到答案并按照该页上的概述标记复选标记。
if(isset($_POST['inputPackageID'])){
$PackageID = $_POST['inputPackageID'];
}
if(!empty($_POST['inputPackageID'])){
$PackageID = $_POST['inputPackageID'];
}