在PHP搜索之前隐藏完整的表

在PHP搜索之前隐藏完整的表,php,mysql,Php,Mysql,我有一个PHP搜索表单,用于在SQL表中搜索。 总的来说,它工作得很好,但有一件事我喜欢改变 搜索前,整个表格在屏幕上可见。 我只想提及搜索后的记录 有人知道用PHP隐藏表吗? 非常感谢 HTML <form action="" method="post"> <input type="text" name="search" placeholder="Search"> <input type="submit" value="Submit" /> </for

我有一个PHP搜索表单,用于在SQL表中搜索。 总的来说,它工作得很好,但有一件事我喜欢改变

搜索前,整个表格在屏幕上可见。 我只想提及搜索后的记录

有人知道用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';
        }
?>

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

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

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

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

这是因为即使没有传递任何搜索,您最终也会运行查询:使用
WHERE排序,如“%”

您应该首先检查搜索是否已通过

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';
    }
}
if(array_key_存在('search',$_POST)&&!empty($_POST['search'])){
$search=$_POST['search'];
$query=$pdo->prepare(“从meldingen中选择*,其中类似“%$search%”或类似“%$search%”的区域限制为0,10”);
$query->bindValue(1,“%$search%”,PDO::PARAM_STR);
$query->execute();
如果(!$query->rowCount()==0){
回声“;
回声“VISSOORTLENGTEAANTALZONE”;
而($results=$query->fetch()){
回声“;
echo$results['soort'];
回声“;
echo$results['lengte'];
回声“;
echo$结果['aantal'];
回声“;
echo$结果['zone'];
回声“;
}
回声“;
}否则{
回声“什么也没找到”;
}
}
  • array\u key\u存在('search',$\u POST)
    检查是否存在一个带有 “搜索”键
  • !空($\u POST['search'])
    检查它不仅仅是 空字符串。(您可能希望允许此操作)

您可以使用
isset($\u POST['search'])
而不是
array\u key\u exists('search',$\u POST)
但是
数组\u key\u exists
是更好的做法,因为如果值为
NULL

,则
isset
仍然返回false,这是因为即使没有传递搜索,您也会运行查询:使用
WHERE排序,如“%”

您应该首先检查搜索是否已通过

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';
    }
}
if(array_key_存在('search',$_POST)&&!empty($_POST['search'])){
$search=$_POST['search'];
$query=$pdo->prepare(“从meldingen中选择*,其中类似“%$search%”或类似“%$search%”的区域限制为0,10”);
$query->bindValue(1,“%$search%”,PDO::PARAM_STR);
$query->execute();
如果(!$query->rowCount()==0){
回声“;
回声“VISSOORTLENGTEAANTALZONE”;
而($results=$query->fetch()){
回声“;
echo$results['soort'];
回声“;
echo$results['lengte'];
回声“;
echo$结果['aantal'];
回声“;
echo$结果['zone'];
回声“;
}
回声“;
}否则{
回声“什么也没找到”;
}
}
  • array\u key\u存在('search',$\u POST)
    检查是否存在一个带有 “搜索”键
  • !空($\u POST['search'])
    检查它不仅仅是 空字符串。(您可能希望允许此操作)

您可以使用
isset($\u POST['search'])
而不是
array\u key\u exists('search',$\u POST)
但是
数组_key_存在
是更好的做法,因为如果值为
NULL

isset
仍然返回false。表是在搜索时显示还是根本不搜索?表是在搜索时显示还是根本不搜索时显示?