拥有一个包含业务线索列表的数据库。它们都被赋予了一个新的、热的、冷的等状态。我在页面上有链接,只显示新的或只有热的工作正常,但我似乎不能让一个工作显示所有。默认视图为“新建”。这是我正在做的工作,提前谢谢你的帮助。
$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=新的、热的、冷的、拒绝的和关闭的
最佳答案
当您试图通过地址传递相同的变量时,是否尝试使用数组,否则将覆盖get变量。
喜欢www.mydomain.com/leads.php?contactstatus[]=New&contactstatus[]=Hot&contactstatus[]=Cold&contactstatus[]=Rejected&contactstatus[]=Closed
$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';
我已将此设置为如果未传递任何联系人状态,则自动全选。