2017-02-19 58 views
1

我有一个用于在SQL表中搜索的PHP搜索表单。 它们一起工作很好,但我想改变一件事。在PHP搜索前隐藏完整表格

整个表格在搜索前都可以在屏幕上看到。 我想在搜索后只提及记录。

有谁知道在PHP中隐藏表? 非常感谢提前!

HTML

<form action="" method="post"> 
<input type="text" name="search" placeholder="Search"> 
<input type="submit" value="Submit" /> 
</form> 

PHP

<?php 
$host = "******"; 
$user = "******"; 
$password = "******"; 
$database_name = "vangsten"; 
$pdo = new PDO("mysql:host=$host;dbname=$database_name", $user, $password, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 
)); 
$search=$_POST['search']; 
$query = $pdo->prepare("select * FROM meldingen WHERE soort LIKE '%$search%' OR zone LIKE '%$search%' LIMIT 0 , 10"); 
$query->bindValue(1, "%$search%", PDO::PARAM_STR); 
$query->execute(); 
     if (!$query->rowCount() == 0) { 

       echo "<table style=\"margin:50px auto;\">"; 
       echo "<tr><td>VISSOORT</td><td>LENGTE</td><td>AANTAL</td><td>ZONE</td></tr>"; 
      while ($results = $query->fetch()) { 
       echo "<tr><td>";    
       echo $results['soort']; 
       echo "</td><td>"; 
       echo $results['lengte']; 
       echo "</td><td>"; 
       echo $results['aantal']; 
       echo "</td><td>"; 
       echo $results['zone']; 
       echo "</td></tr>";    
      } 
       echo "</table>";   
     } else { 
      echo 'Nothing found'; 
     } 
?> 
+0

是否该表显示在搜索或即使不是搜索在所有? – MrDarkLynx

回答

0

这是因为,即使有没有 搜索通过你最终会运行查询:用WHERE sort LIKE '%%'

您应该检查是否搜索已通过第一

if(array_key_exists('search',$_POST) && !empty($_POST['search'])){ 
    $search=$_POST['search']; 
    $query = $pdo->prepare("select * FROM meldingen WHERE soort LIKE '%$search%' OR zone LIKE '%$search%' LIMIT 0 , 10"); 
    $query->bindValue(1, "%$search%", PDO::PARAM_STR); 
    $query->execute(); 
    if (!$query->rowCount() == 0) { 
     echo "<table style=\"margin:50px auto;\">"; 
     echo "<tr><td>VISSOORT</td><td>LENGTE</td><td>AANTAL</td><td>ZONE</td></tr>"; 
     while ($results = $query->fetch()) { 
      echo "<tr><td>";    
      echo $results['soort']; 
      echo "</td><td>"; 
      echo $results['lengte']; 
      echo "</td><td>"; 
      echo $results['aantal']; 
      echo "</td><td>"; 
      echo $results['zone']; 
      echo "</td></tr>";    
     } 
     echo "</table>";   
    } else { 
     echo 'Nothing found'; 
    } 
} 
  • array_key_exists('search',$_POST)检查存在与 关键值的搜索;“
  • !empty($_POST['search'])检查它不只是 一个空字符串。 (您可能要允许此)

你可以使用isset($_POST['search'])代替array_key_exists('search',$_POST)array_key_exists是更好的做法是isset仍返回false如果该值为NULL

+0

It's Ito,Theo!非常感谢!我很感激。 –

0

您可以检查用户是否点击了搜索按钮:

if (isset($_POST['search'])) { 
    // do your table generation here 
}