拥有一个包含业务线索列表的数据库。它们都被赋予了New,Hot,Cold等状态。我在页面上有链接只显示New或者只有Hot才能正常工作,但我似乎无法让一个人显示All。默认视图为“新建”。这是我正在与之合作的,请提前感谢您的帮助。
$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";
}
我用来获取所有内容的网址是:
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
答案 0 :(得分:2)
当您尝试通过地址传递相同的变量时,您尝试使用数组,否则您将覆盖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,我已将其设置为自动全选。
答案 1 :(得分:0)
第一个看起来与第二个相同。您还缺少第一个查询的WHERE限定符。
如果您想获取所有联系人,请更改此
$query = "SELECT * FROM contacts WHERE contactstatus ORDER BY contacts.date DESC";
到这个
$query = "SELECT * FROM contacts ORDER BY contacts.date DESC";
答案 2 :(得分:0)
难道你不能只设置php页面的默认行为来显示所有内容吗?也就是说,如果没有设置$_GET
参数(在URL中),您的页面只会从数据库中选择所有潜在客户。
$query = " SELECT * FROM `contacts` ORDER BY date DESC";
$result = $mysqli->query($query);
if($result && $result->num_rows > 0){
// do something with all leads
}
为了处理特定状态,我们有
if( isset($_GET['contactstatus']) ){
// select leads based on status
}
如果要将多个值传递给单个GET参数,请参阅Passing multiple values for same GET variable in URL