首页 > 解决方案 > PHP Post 为空然后分配默认值

问题描述

我有一个搜索查询,如果它从表单接收数据,它会返回一个效果很好的结果页面。但是,如果用户直接进入结果页面(他们为页面添加了书签),我希望他们看到所有结果。搜索是按星期几和区域。我可以将日期默认为当天日期(“l”)并将区域变量默认为整个城市吗?代码如下:

require("dbinfo.php");

$Area=$_POST['Area'];
$Day=$_POST['Day'];
$ID=$_POST['ID'];


include("History.php");
$con = mysql_connect('localhost', $username, $password );
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db($database, $con);
if (!$db_selected) {
die ('Can\'t use DB : ' . mysql_error());
}
$sql = "SELECT 
`ID`,`Name`,`Address`,`".$Day."`,`Area`,`PhoneNumber`,`logo`,`Website` FROM 
`JaxPlaces` WHERE (Area = '".$Area."' OR '".$Area."' = 'Entire City') and 
Status = 'active' and ".$Day." NOT LIKE 'NULL' ORDER BY Name;";
$result = mysql_query($sql);
if(!$result)
{

 }  

标签: phppost

解决方案


在 PHP7+ 中使用空合并运算符

$Area = $_POST['Area'] ?? 'City';
$Day = $_POST['Day'] ?? date("l");

在 PHP5 中使用三元运算符:

$Area = isset($_POST['Area']) ? $_POST['Area'] : 'City';
$Day = isset($_POST['Day']) ? $_POST['Day'] : date("l");

推荐阅读