2017-09-02 44 views
-2

所以我尝试做一个搜索栏,将填补我的表,但我的代码似乎没有工作我没有得到我的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:我从第一次查询的输出,但每当我点击去搜索按钮我不能让第二个

+1

了解准备语句以防止SQL注入攻击。 – Jens

+1

使用mysqli_error在执行sql语句后检查错误 – Jens

+0

查询是否被执行?在我看来,你的'form'应该有一个'action'属性。 – jmargolisvt

回答

0

有一对夫妇的事情了......

  1. 你的按钮有两种类型<button type="submit" name="submit" id="submit" class="btn btn-secondary" type="button">Go!</button>因此摆脱掉类型=“按钮”。
  2. 考虑到PHP脚本与html代码位于同一页面,您错过了表单标记中的action属性,因此将<form method="GET">转换为<form action = "<?php $_PHP_SELF ?>" method = "GET">
  3. 删除按钮的名称/ ID属性,因为您不需要它们(除非您需要CSS的ID属性)。
  4. 在你的PHP脚本,如果按钮被设置,有一定的价值这是错误的...你应该检查你的数据GET请求你正在寻找,无关的按钮,以便与if(isset($_GET ['search'])&& !empty($_GET['search'])){
  5. 更换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代码 –

相关问题