2017-09-02 80 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代碼 –

相關問題