Как скрыть таблицу перед поиском по php

Вот мой код. перед поиском он показывает значения всей таблицы. поисковый фильтр работает нормально. но по умолчанию мне нужно скрыть таблицу. HTML-код:

 <form id = "form1" name = "form1" method = "post" action = "search.php">
<label for = "from">From</label>
<input name = "from" type = "text" id = "from" size = "10" value = "<?php echo $_REQUEST["from"]; ?>" />
<label for = "to">to</label>
<input name = "to" type = "text" id = "to" size = "10" value = "<?php echo $_REQUEST["to"]; ?>"/>
 <label>Name or Email:</label>
<input type = "text" name = "string" id = "string" value = "<?php echo stripcslashes($_REQUEST["string"]); ?>" />
<label>City</label>
<select name = "city">
<option value = "">--</option>
<?php
    $sql = "SELECT * FROM ".$SETTINGS["data_table"]." GROUP BY city ORDER BY city";
    $sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
    while ($row = mysql_fetch_assoc($sql_result)) {
        echo "<option value='".$row["city"]."'".($row["city"]==$_REQUEST["city"] ? " selected" : "").">".$row["city"]."</option>";
    }
?>
</select>
<input type = "submit" name = "button" id = "button" value = "Filter" />
  </label>
      </form>

Код PHP:

<table width = "700" border = "1" cellspacing = "0" cellpadding = "4">
  <tr>
    <td width = "90" bgcolor = "#CCCCCC"><strong>From date</strong></td>
    <td width = "95" bgcolor = "#CCCCCC"><strong>To date</strong></td>
    <td width = "159" bgcolor = "#CCCCCC"><strong>Name</strong></td>
    <td width = "191" bgcolor = "#CCCCCC"><strong>Email</strong></td>
    <td width = "113" bgcolor = "#CCCCCC"><strong>City</strong></td>
  </tr>
<?php
if ($_REQUEST["string"]<>'') {
    $search_string = " AND (full_name LIKE '%".mysql_real_escape_string($_REQUEST["string"])."%' OR email LIKE '%".mysql_real_escape_string($_REQUEST["string"])."%')"; 
}
if ($_REQUEST["city"]<>'') {
    $search_city = " AND city='".mysql_real_escape_string($_REQUEST["city"])."'";   
}

if ($_REQUEST["from"]<>'' and $_REQUEST["to"]<>'') {
    $sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE from_date >= '".mysql_real_escape_string($_REQUEST["from"])."' AND to_date <= '".mysql_real_escape_string($_REQUEST["to"])."'".$search_string.$search_city;
} else if ($_REQUEST["from"]<>'') {
    $sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE from_date >= '".mysql_real_escape_string($_REQUEST["from"])."'".$search_string.$search_city;
} else if ($_REQUEST["to"]<>'') {
    $sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE to_date <= '".mysql_real_escape_string($_REQUEST["to"])."'".$search_string.$search_city;
} else {
    $sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE id>0".$search_string.$search_city;
}

$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
if (mysql_num_rows($sql_result)>0) {
    while ($row = mysql_fetch_assoc($sql_result)) {
?>
  <tr>
    <td><?php echo $row["from_date"]; ?></td>
    <td><?php echo $row["to_date"]; ?></td>
    <td><?php echo $row["full_name"]; ?></td>
    <td><?php echo $row["email"]; ?></td>
    <td><?php echo $row["city"]; ?></td>
  </tr>
<?php
    }
} else {
?>
<tr><td colspan = "5">No results found.</td>
<?php   
}
?>
</table>

Код работает нормально. как скрыть таблицу перед отправкой кнопки поиска в php и mysql. Если кто знает, ответьте на мои вопросы.

mysql_* устарел, следует использовать подготовленные операторы mysqli_ или PDO. Также ваш код уязвим для SQL-инъекций, лучше начните отсюда. Вы можете использовать if (isset($_REQUEST['string']) перед таблицей, если хотите отобразить ее после отправки.
AnTrakS 26.10.2018 08:21

Я согласен с @Dimitrov в его предложениях. В любом случае, чтобы «скрыть таблицу», вы можете просто обернуть всю таблицу в условие, которое проверяет поисковую запись.

Hendrik Prinsloo 26.10.2018 08:33

Я. PDO мы можем использовать. но в этом инструменте они уже написаны с использованием MySQL. поэтому я просто добавляю это условие только в MySQL. Я нашел решение. Я добавил if (isset ($ _ POST ['button'])) перед таблицей. Итак, таблица будет отображаться после отправки формы.

Emily 26.10.2018 08:38
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
378
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

**<?php
error_reporting(0);
include("config.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" />
<title>MySQL table search</title>
<script type = "text/javascript" src = "https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script type = "text/javascript" src = "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<link href = "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel = "stylesheet" type = "text/css"/>
<style>
BODY, TD {
    font-family:Arial, Helvetica, sans-serif;
    font-size:12px;
}
</style>
</head>


<body>

<form id = "form1" name = "form1" method = "post" action = "search.php">
<label for = "from">From</label>
<input name = "from" type = "text" id = "from" size = "10" value = "<?php echo $_REQUEST["from"]; ?>" />
<label for = "to">to</label>
<input name = "to" type = "text" id = "to" size = "10" value = "<?php echo $_REQUEST["to"]; ?>"/>
 <label>Name or Email:</label>
<input type = "text" name = "string" id = "string" value = "<?php echo stripcslashes($_REQUEST["string"]); ?>" />
<label>City</label>
<select name = "city">
<option value = "">--</option>
<?php
    $sql_result = mysqli_query($connection,"SELECT * FROM data GROUP BY city ORDER BY city");
    //echo "SELECT * FROM data GROUP BY city ORDER BY city";

    while ($row = mysqli_fetch_assoc($sql_result)) {
        echo "<option value='".$row["city"]."'".($row["city"]==$_REQUEST["city"] ? " selected" : "").">".$row["city"]."</option>";
    }
?>
</select>
<input type = "submit" name = "button" id = "button" value = "Filter" />
  </label>
  <a href = "search.php"> 
  reset</a>
</form>
<br /><br />
<table width = "700" border = "1" cellspacing = "0" cellpadding = "4">
  <tr>
    <td width = "90" bgcolor = "#CCCCCC"><strong>From date</strong></td>
    <td width = "95" bgcolor = "#CCCCCC"><strong>To date</strong></td>
    <td width = "159" bgcolor = "#CCCCCC"><strong>Name</strong></td>
    <td width = "191" bgcolor = "#CCCCCC"><strong>Email</strong></td>
    <td width = "113" bgcolor = "#CCCCCC"><strong>City</strong></td>
  </tr>
<?php
//echo $_REQUEST["string"];
if ($_REQUEST["string"]<>'') {
    $search_string = " AND (full_name LIKE '%".mysqli_real_escape_string($_REQUEST["string"])."%' OR email LIKE '%".mysqli_real_escape_string($_REQUEST["string"])."%')";   
    echo $search_string;
}
if ($_REQUEST["city"]<>'') {
    $search_city = " AND city='".mysqli_real_escape_string($_REQUEST["city"])."'";  
}

if ($_REQUEST["from"]<>'' and $_REQUEST["to"]<>'') {
    $sql = "SELECT * FROM data WHERE from_date >= '".mysqli_real_escape_string($_REQUEST["from"])."' AND to_date <= '".mysql_real_escape_string($_REQUEST["to"])."'".$search_string.$search_city;
} else if ($_REQUEST["from"]<>'') {
    $sql = "SELECT * FROM data WHERE from_date >= enter code here'".mysqli_real_escape_string($_REQUEST["from"])."'".$search_string.$search_city;
} else if ($_REQUEST["to"]<>'') {
    $sql = "SELECT * FROM data WHERE to_date <= '".mysqli_real_escape_string($_REQUEST["to"])."'".$search_string.$search_city;
} else {
    $sql = "SELECT * FROM data WHERE id>0".$search_string.$search_city;
}

$sql_result = mysqli_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
if (mysql_num_rows($sql_result)>0) {
    while ($row = mysqli_fetch_assoc($sql_result)) {
?>
  <tr>
    <td><?php echo $row["from_date"]; ?></td>
    <td><?php echo $row["to_date"]; ?></td>
    <td><?php echo $row["full_name"]; ?></td>
    <td><?php echo $row["email"]; ?></td>
    <td><?php echo $row["city"]; ?></td>
  </tr>
<?php
    }
} else {
?>
<tr><td colspan = "5">No results found.</td>
<?php   
}
?>
</table>


<script>
    $(function() {
        var dates = $( "#from, #to" ).datepicker({
            defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 2,
            dateFormat: 'yy-mm-dd',
            onSelect: function( selectedDate ) {
                var option = this.id == "from" ? "minDate" : "maxDate",
                    instance = $( this ).data( "datepicker" ),
                    date = $.datepicker.parseDate(
                        instance.settings.dateFormat ||
                        $.datepicker._defaults.dateFormat,
                        selectedDate, instance.settings );
                dates.not( this ).datepicker( "option", option, date );
            }
        });
    });
    </script>

</body>
</html>**
Ответ принят как подходящий

Я нашел решение.

я добавил

if (isset($_POST['button']))

перед столом. Итак, таблица будет отображаться после отправки формы.

Другие вопросы по теме