拥有一个包含业务线索列表的数据库。它们都被赋予新的、热的、冷的等状态。我在页面上有链接只显示新的或只显示工作正常的热的,但我似乎无法让一个工作来显示所有。默认 View 是新的。这是我正在处理的内容,在此先感谢您的帮助。
$query = "SELECT * FROM contacts WHERE contactstatus = 'New' ORDER BY date DESC";
if(isset($_GET['contactstatus'])
&& in_array($_GET['contactstatus'], array('New', 'Hot', 'Warm', 'Cold', 'Rejected', 'Closed')))
{
$status = $_GET['contactstatus'];
$query = "SELECT * FROM contacts WHERE contactstatus ORDER BY date DESC";
}
if(isset($_GET['contactstatus'])
&& in_array($_GET['contactstatus'], array('New', 'Hot', 'Warm', 'Cold', 'Rejected', 'Closed')))
{
$status = $_GET['contactstatus'];
$query = "SELECT * FROM contacts WHERE contactstatus = '".$status."' ORDER BY date DESC";
}
我用来获取所有内容的 url 是:
www.mydomain.com/leads.php?contactstatus=New&contactstatus=Hot&contactstatus=Cold&contactstatus=Rejected&contactstatus=Closed
我也试过:
www.mydomain.com/leads.php?contactstatus=New&Hot&Cold&Rejected&Closed
最佳答案
当您尝试通过地址传递相同的变量时,您是否尝试过使用数组,否则您将覆盖 get 变量。
$status_types = Array('New', 'Hot', 'Warm', 'Cold', 'Rejected', 'Closed');
$statuses = Array();
$query = 'SELECT * FROM contacts ';
for($i=0, $j=count($_GET['contactstatus']); $i<$j; $i++){
if(in_array($_GET['contactstatus'][$i], $status_types)){
if($i==0)
$query.= " WHERE contactstatus IN (";
$statuses[] = $_GET['contactstatus'][$i];
$query .= "'".$_GET['contactstatus'][$i]."'";
if($i==($j-1))
$query .= ")";
}
}
$query .= ' ORDER BY contacts.date DESC';
如果没有传递 contactstatus,我已将其设置为自动全选。
关于php - 在 url 中传递多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11158156/