我没有得到我的GET方法的任何输出或效应初探在我的PHP代码
问题描述:
所以我尝试做一个搜索栏,将填补我的表,但我的代码似乎没有工作我没有得到我的GET方法的任何输出或效应初探在我的PHP代码
<?php $connection = mysqli_connect("localhost","root","","e-learning") or
die ("Error");
$query = "SELECT * FROM admin_info";
$queryResult = mysqli_query ($connection,$query);
if(isset($_GET ['submit'])&& !empty($_GET['submit'])){
$safe_value = $GET['search'];
$query = "SELECT * FROM admin_info
WHERE`first_name`like'"."%".$safe_value."%"."'";
$queryResult = mysqli_query ($connection,$query);
}
?>
这是我的HTML代码:
<form method="GET">
<div class="input-group">
<input name="search" id="search" type="text" class="form-control" placeholder="Search for...">
<span class="input-group-btn">
<button type="submit" name="submit" id="submit" class="btn btn-secondary" type="button">Go!</button>
</span>
</form>
这是我的表
<?php
while ($row = mysqli_fetch_array($queryResult)) {?>
<tr>
<td style="overflow:hidden;white-space:nowrap;"><?php echo $row['id'];?></td>
<td style="overflow:hidden;white-space:nowrap;"><?php echo $row['first_name']." ".$row['middle_name']." ".$row['last_name'] ?></td>
<td style="overflow:hidden;white-space:nowrap;"><?php echo $row['user_level'];?></td>
<td style="overflow:hidden;white-space:nowrap;"><?php echo $row['status'];?></td>
</tr>
<?php }
?>
PS:我从第一次查询的输出,但每当我点击去搜索按钮我不能让第二个
答
有一对夫妇的事情了......
- 你的按钮有两种类型
<button type="submit" name="submit" id="submit" class="btn btn-secondary" type="button">Go!</button>
因此摆脱掉类型=“按钮”。 - 考虑到PHP脚本与html代码位于同一页面,您错过了表单标记中的action属性,因此将
<form method="GET">
转换为<form action = "<?php $_PHP_SELF ?>" method = "GET">
。 - 删除按钮的名称/ ID属性,因为您不需要它们(除非您需要CSS的ID属性)。
- 在你的PHP脚本,如果按钮被设置,有一定的价值这是错误的...你应该检查你的数据GET请求你正在寻找,无关的按钮,以便与
if(isset($_GET ['search'])&& !empty($_GET['search'])){
- 更换
if(isset($_GET ['submit'])&& !empty($_GET['submit'])){
您misstyped$safe_value = $GET['search'];
因为你应该有$_GET['search']
然而,所有这些可能已经被你发现了,如果你在你的代码看起来更仔细。
这里是全功能的代码:
<?php
$connection = mysqli_connect("localhost","root","","e-learning") or
die ("Error");
$query = "SELECT * FROM admin_info";
$queryResult = mysqli_query ($connection,$query);
if(isset($_GET ['search'])&& !empty($_GET['search'])){
$safe_value = $_GET['search'];
$query = "SELECT * FROM admin_info
WHERE`first_name`like'"."%".$safe_value."%"."'";
$queryResult = mysqli_query ($connection,$query);
}
?>
<html>
<body>
<form action = "<?php $_PHP_SELF ?>" method = "GET">
<div class="input-group">
<input name="search" id="search" type="text" class="form-control" placeholder="Search for...">
<span class="input-group-btn">
<button type="submit" class="btn btn-secondary">Go!</button>
</span>
</form><br/><br/>
<?php
while ($row = mysqli_fetch_array($queryResult)) { ?>
<tr>
<td style="overflow:hidden;white-space:nowrap;"><?php echo $row['id'];?></td>
<td style="overflow:hidden;white-space:nowrap;"><?php echo $row['first_name']." ".$row['middle_name']." ".$row['last_name'] ?></td>
<td style="overflow:hidden;white-space:nowrap;"><?php echo $row['user_level'];?></td>
<td style="overflow:hidden;white-space:nowrap;"><?php echo $row['status'];?></td>
</tr><br/>
<?php } ?>
</body>
</html>
+0
谢谢你的提示...现在我更好地理解如何构建php代码 –
了解准备语句以防止SQL注入攻击。 – Jens
使用mysqli_error在执行sql语句后检查错误 – Jens
查询是否被执行?在我看来,你的'form'应该有一个'action'属性。 – jmargolisvt